LINUX.ORG.RU

Сообщения RiseOfDeath

 

Переподключение устройства с незакрытым файлом.

Доброго времени суток. Есть такой вопрос. Есть некое устройство ttyUSBn (3g модем), есть программа которая с ним работает. Есть кот. Программа открывает файл устройства и что-то делает. В результате того, что кот цепляет модем при перемещении сомого себя в трехмерном пространстве, модем отходит, файл в этот момент оказывается не закрыт и устройство переопределяется уже как ttyUSBn+1, что меня огорчает. Есть какие-либо способы этой проблемы избежать программно. (Воздействие на кота не предлагать).

udev скрипт (для уведомления программы о том, что файл надо бы закрыть) не успевает «оперативно» справится с ситуацией.

 , , ,

RiseOfDeath
()

Qt .pro настройки

Кратко суть. Есть проект. В папке ./{project folder}/src лежат исходники в папке ./{project folder}/release лежат результаты компиляции. Так же, после компиляции, в папку ./{project folder}/release помещается файл с md5.txt, название которого говорит о сути. Необходимо его автоматом запихать в тарбол и установить вместе с проектом на удаленую Linux машину.

пробовал писать в .pro следующее

md5.files=md5.txt
md5.path=/home/root # это не столь важно, в данный момент
INSTALLS+=md5

Прокатывает если папка с сорцами и со скомпилированными файлами - одна и та же папка.

Вариант

md5.files=%{buildDir}/md5.txt 
не прокатывает ни при каких условиях.

В общем как сие правильно делается?

 , ,

RiseOfDeath
()

Определение сетевого кабеля

Доброго времени суток. Мой мозг интересует вопрос, который уже два дня не дает мне покоя - как программно (в моем случае это C/C++) определить подключен-ли (в данный момент) к eth0 сетевой кабель или не подключен?

В интернете нашел два решения и оба не рабочие:

Первое:

    int fd = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);

    struct ifreq ethreq;

    memset(&ethreq, 0, sizeof(ethreq));

    /* set the name of the interface we wish to check */
    strncpy(ethreq.ifr_name, "eth0", IFNAMSIZ);
    /* grab flags associated with this interface */
    ioctl(fd, SIOCGIFFLAGS, &ethreq);

    if (ethreq.ifr_flags & IFF_RUNNING)
    {
        std::cout<<"Runing"<<std::endl; // всегда выводится это
    }
    else
    {
        std::cout<<"Not Runing"<<std::endl;   
    }
    close(fd);

Второе:

cat /sys/class/net/eth0/carrier - всегда равно единице.

RiseOfDeath
()

Максимальное облегчение Angstrom. Максимально быстрая загрузка.

Доброго времени суток, мне никогда не приходилось сталкиваться с линуксом ближе, чем на уровне дистрибутивов «для домохозяек» в связи с чем возникла у меня проблема. Есть такая штучка, как Angstrom. С помощью онлайн-билдера http://narcissus.angstrom-distribution.org/ я собрал себе максимально легкий дистрибутив под beagleboard, однако меня все равно не устраивает его время старта (около 8-10 секунд после загрузки ядра в память).

1. Как можно ускорить загрузку с или без перекомпиляции системы. Какие демоны и др. вещи можно убрать/отключить и как?

2. <тут будет вопрос по поводу компиляции ядра и всего остального, но я его еще не сформулировал>

 , , ,

RiseOfDeath
()

RSS подписка на новые темы