LINUX.ORG.RU

Сообщения Less

 

lighttpd dir-listing

Форум — General

Всем привет. Есть необходимость настроить dir list на директорию /mnt/logs. Сейчас сделал так: в рутовой директории создал симлинк на каталог /mnt/logs

ln -s /mnt/logs/ logs

В конфиге /etc/lighttpd/conf.d/dirlisting.conf

$HTTP["url"] =~ "^/logs($|/)" {
     dir-listing.activate = "enable" 
   }
Все работает, НО:

  • Я так понял это огромный костыль с точки зрения безопасности: если изменить симлинк на корень, то можно получить все дерево файловой системы. Да и сам разработчик пишет:

    Note: It's a good idea to disable this option for security unless you've chrooted lighttpd or only people you trusted have shell access to your server.

  • Параметр server.follow-symlink=«enable». Правильно ли я понимаю, что он автоматически создаст симлинк? Я не могу этот симлинк найти.

Какие варианты решений могут быть? Мне просто надо расшарить каталог с логами.

 

Less
()

Права в Buildroot

Форум — General

Всем привет, мне необходимо установить права на запуск /sbin/reboot пользователю www-data. Утилиты sudo нет, соответственно sudoers тоже, ставить нельзя - ограничение на объем дистрибутива. Как это можно сделать в билдруте? Читал ман про user tables, но не уверен в том ли направлении копаю.

 ,

Less
()

OpenWRT UCI и BuildRoot

Форум — General

Приветствую. Как известно, для конфигурирования настроек роутера в OpenWRT преимущественно используется UCI. Мне необходимо сделать тоже самое но не для роутера и в buildroot’e. Я установил пакет с uci. Как я понял, принцип работы такой: создается конфиг в /etc/config ,а дальше набивается соответствующими настройками. Пример тут приводить не буду, тк достаточно много инфы в документации https://openwrt.org/docs/guide-user/base-system/basic-networking. Затем рестартится сервис, допустим /etc/init.d/network restart и настройки вступают в силу. Вопрос такой: у меня в дистрибутиве используется ifupdown и он при загрузке подсасывает конфиг из /etc/network/interfaces. Как его натравить использовать uci конфиги из /etc/config ? И должен ли он быть uci совместимым?

 , ,

Less
()

Где хранить настройки на embedded устройствах

Форум — General

Всех приветствую. У меня вопрос: кто знает как и где хранятся настройки на встраиваемых девайсах? К примеру взять ip камеру, роутер, тв-приставку…там неверняка крутится linux собранный на openWRT, buildroot, yocto и все это дело работает из ramfs. И, собственно вопрос, задавая настройки в web интерфейсе где они хранятся? Я так полагаю, что это или eeprom либо emmc с которой и грузится система?

 ,

Less
()

Выравнивание заголовка таблицы в LaTex

Форум — General

Всем привет, как выравнять по вертикали первый столбец?Важно: первый столбец объединен с 2-мя строками, в нем несколько слов, а в следующем столбце - тоже название с переносом. Без этих переносов получается все ровно.

\usepackage{multirow}
\usepackage{array}

\newcommand{\specialcell}[2][c]{%
	\begin{tabular}[#1]{@{}c@{}}#2\end{tabular}}

\begin{document}
	
	\begin{table}
		\begin{tabular}{|c|c|c|c|}
			\hline
			\multirow{2}{*}{\specialcell{Вadsf\\fwfwf}} & \multicolumn{3}{c|}{asdfasd}\\
			\cline{2-4}
			 & \specialcell{dasfasdf\\asdfasd} & 3 & 4\\
			\hline
		\end{tabular}
	\end{table}
	
\end{document}

Сейчас у меня вот так:

+-----------+---------------------+
| Несколько | qwefqwefqwefqwef    |
+ слов      +---------------------+
|           | Слово с   | 2qweqwe |
+           + переносом + qweqwe  +
|           |           |         |
+-----------+-----------+---------+

Перемещено leave из talks

 

Less
()

Qml падает в OpenEmbedded

Форум — Development

Приветствую. Разрабатываю qml приложения для openembedded. Железка Atom T640, gma600. Для этой железки была выбрана ветка Daisy https://www.yoctoproject.org/downloads/bsps/daisy161/crown-bay, qt5.2.1. В Qt есть пример QCinematicExpirience, на этой сборке он работает без проблем. На хостовую машину поставил тоже qt5.2.1 и скомпилил шаблонный проеки qml и включил его в сборку

import QtQuick 2.0

Rectangle {
    width: 360
    height: 360
    Text {
        text: qsTr("Hello world!")
        anchors.centerIn: parent
    }
    MouseArea {
        anchors.fill: parent
        onClicked: {
            Qt.quit();
        }
    }
}

И тоже все гуд. Но при попытке изменить надпись на кириллицу, приложений падает (Segmentation Fault). Вот что показывает gdb:

(gdb) start
Temporary breakpoint 1 at 0x8049a50: file ../test_qml3/untitled/main.cpp, line 5.
Starting program: /home/root/./untitled 
To enable execution of this file add
	add-auto-load-safe-path /lib/libthread_db-1.0.so
line to your configuration file "/home/root/.gdbinit".
To completely disable this security protection add
	set auto-load safe-path /
line to your configuration file "/home/root/.gdbinit".
For more information about this security protection see the
"Auto-loading safe path" section in the GDB manual.  E.g., run from the shell:
	info "(gdb)Auto-loading safe path"

Temporary breakpoint 1, main (argc=1, argv=0xbffffc04)
    at ../test_qml3/untitled/main.cpp:5
(gdb) next
8	in ../test_qml3/untitled/main.cpp
(gdb) 
5	in ../test_qml3/untitled/main.cpp
(gdb) next
6	in ../test_qml3/untitled/main.cpp
(gdb) 
8	in ../test_qml3/untitled/main.cpp
(gdb) 
9	in ../test_qml3/untitled/main.cpp
(gdb) next
[New LWP 845]
10	in ../test_qml3/untitled/main.cpp
(gdb) 
12	in ../test_qml3/untitled/main.cpp
(gdb) 
[New LWP 846]

Program received signal SIGSEGV, Segmentation fault.
[Switching to LWP 846]
0xb6cc2669 in ?? () from /usr/lib/libEMGDOGL.so
(gdb) q
В чем причина падения? Все шрифты установлены, поддержка кириллицы тоже есть.

Перемещено shell-script из general

 , ,

Less
()

qml изменение состояния state по таймеру

Форум — Development

Всем привет! Делаю что-то вроде сообщения-напоминалки. Идея такая: есть прямоугольник с изменяемым цветом рамки и толщиной, внутри рамки текст с любым сообщением. Задача, в зависимости от типа сообщения (0,1 или 2) заставить изменяться цвет и толщину рамки у прямоугольника. Для привлечения внимания она должна моргать. Например: State1 - дефолтное состояние (толщина рамки 1, цвет черный) State2 - толщина рамки 3, цвет желтый, частота переключения 200 State3 - толщина рамки 3, цвет красный, частота переключения 100 Вот код:

import QtQuick 2.3
import QtQuick.Controls 1.2
import QtQuick.Layouts 1.1

ApplicationWindow {
    visible: true
    width: 640
    height: 480

    property variant statesNames: ["state1", "state2", "state3"]

    RowLayout {
        TextField {
            id: edit
        }
        Button {
            text: "Ok"
            onClicked: {
                myRect.num_state = statesNames[edit.text];
                myRect.some_text = statesNames[edit.text];
            }
        }
    }

    Test {
        id: myRect
        anchors.centerIn: parent
    }
}

Test.qml

import QtQuick 2.0

Rectangle {
    property alias some_text: text_sqr.text
    property real temp_int: 500
    property alias num_state: myRect.state

    id: myRect
    width: 100; height: 100
    color: "white"
    border.color: "black"
    border.width: 1

    Text {
        id: text_sqr
        text: some_text
        anchors.centerIn: parent
    }

    states: [
        State {
            name: "state1"
            PropertyChanges { target: myRect; border.color: "black"; border.width: 1}
        },
        State {
            name: "state2"
            PropertyChanges { target: myRect; border.color: "orange"; border.width: 5}

        },
        State {
            name: "state3"
            PropertyChanges { target: myRect; border.color: "red"; border.width: 5}
        }
    ]

    Timer {
        id: myTimer
        interval: temp_int
        running: false
        repeat: true
        triggeredOnStart: false
//        onTriggered: (myRect.state == 'state1') ? myRect.state = "" : myRect.state = 'state1';
        Component.onCompleted: start()
    }
}

Как стартануть таймер при изменении state? и как его остановить при State1. И как правильно написать условие в onTriggered? Спасибо)

 ,

Less
()

Bash + serial port + ifconfig

Форум — Development

Всем привет. Прошу помощи разобраться в скрипте, я новичок. Мне нужно написать скрипт, который в цикле опрашивает командой '\xff' контроллер по порту ttyUSB0. Контроллер отвечает одним байтом, и, если принятый байт не ноль, значит прекращаем цикл и поднимаем сеть с ip адресом, где принятый байт это последний байт в ip адресе.

#!/bin/bash
PORT="/dev/ttyUSB0"
stty -F $PORT 9600

while [ 1 ]; do
   printf '\xff' > $PORT
   <дальше затык здесь, не получается считать переменную и дальше с ней работать (железка на проводе)>
   read byte < $PORT
   echo $byte
done

 , ,

Less
()

Скрипт ожидания готовности video1

Форум — General

Всем привет! У меня в системе есть 2 устройства video0 и video1. При загрузке системы (Squeeze) необходимо через VLC делать захват и кидать в сеть. Я написал скрипт который запускает VLC для video0 и для video1, и кидает в сеть. Скрипт сделал исполняемым и прописал в автозагрузку. Проблема в следующем: иногда бывает что скрипт срабатывает раньше чем появляется video1, то есть VLC преграсно выполняет захват с video0 но не каждый раз открывает video1. Если в скрипт вставить sleep 1, то всё работает на ура. Но это же откровенно говоря костыль. Помогите написать скрипт, который бы дожидался появления video1 и после этого запускал vlc c нужными параметрами. Пробовал разабраться со skeleton'ом, чтобы заставить скрипт запускаться последним. Но тоже не заработало.

Скрипт запуска vlc примерно такой, я тожно вспомнить не могу:

#!bin/bash
vlc /dev/video0 (тут параметры)&
vlc /dev/video1 

Less
()

Установка Debian lenny на СompactFlash

Форум — Linux-install

Всем привет! Хочу установить debian на компакт флешку, ну и соответственно сделать её только для чтения. Погуглив, нашёл статью как это можно сделать http://chschneider.eu/linux/thin_client/ Довольно таки хорошо все описано по шагам. Ну и я решил попробовать. Первое что вызвало вопрос

rm /cf/etc/mtab 
удаление файла, которого нет. Не стал зацикливаться, делал дальше. Вообщем всё в порядке,система загрузилась. Но смущает что во время загрузки промелькнула строка
Mounting local filesystem...failed!
При этом всё работает. В чём причина появления такого сообщения?
/dev/sda1 / ext2 defaults,noatime,ro 0 0
proc /proc proc defaults 0 0
tmpfs /var/run tmpfs defaults 0 0
tmpfs /var/lock tmpfs defaults 0 0
tmpfs /var/log tmpfs defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
tmpfs /var/lib/dhcp3 tmpfs defaults 0 0

menu.lst

title		Debian GNU/Linux, kernel 2.6.26-2-486
root		(hd0,0)
kernel		/boot/vmlinuz-2.6.26-2-486 root=/dev/sdb1 ro 
initrd		/boot/initrd.img-2.6.26-2-486

title		Debian GNU/Linux, kernel 2.6.26-2-486 (single-user mode)
root		(hd0,0)
kernel		/boot/vmlinuz-2.6.26-2-486 root=UUID=4d798505-a433-47f3-8118-d5016ac0d344 ro single
initrd		/boot/initrd.img-2.6.26-2-486

 

Less
()

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