Файловая система |
Предыдущая Содержание Следующая |
|
Работа с файловой системой происходит с правами администратора.
•Создать директорию /rootfs для файловой системы. •Распаковать /<buildroot dir>/binaries/uclibc/rootfs.arm_nofpu.tar.bz2 в папку /rootfs
Чтобы впоследствие файловую систему можно было использовать для initramfs, добавить в корень ссылку с именем init на /sbin/init или сразу на busybox:
cd /<path>/rootfs ln -s bin/busybox init
Старт Linux: •ядро ищет rootfs и монтирует его; •ядро ищет init на уже смонтированной rootfs (/sbin/init) и запускает его; •init загружает /etc/inittab и "выполняет" его; •<prog init> из /etc/inittab выполняет дополнительную инициализацию.
Так как файловая система находится на Nandflash с ограниченным числом циклов записи, выключаем дополнительные ненужные опции, требующие записи в файловую систему. Смотри также http://www.linuxrsp.ru/docs/howto/Bootdisk-HOWTO-4.html НастройкаЕсли настройка параметров сети выполняется в своём приложении, удалить из /etc/init.d скрипт S40network. Если старт ntpd (клиент для синхронизации времени) выполняется своим приложением, удалить S49ntp. Настройка inittab•добавить запуск своего приложения; •добавить запуск планировщика; •отключить консоли tty1, tty2, tty3, оставив только ttyS0; •для ttyS0 выставить параметры getty: не детектировать сигнал вызова (-L), скорость 115200, тип терминала vt100; •отключить инициализацию сетевого имени, так как будем его потом задавать сами программно; •отключить старт сетевого интерфейса и запись в таблицу роутинга, так как адрес прибора будет меняться и будем это делать отдельной программой сами; •отключить klogd (логирование событий ядра) за бесполезностью для нас; •отключить слежение за логами на tty3 программой tail; •отключить перезагрузку системы с помощью Cntrl+ALT+Del;
# Format for each entry: <id>:<runlevels>:<action>:<process> # # id == tty to run on, or empty for /dev/console # runlevels == ignored # action == one of sysinit, respawn, askfirst, wait, and once # process == program to run
# Startup the system null::sysinit:/bin/mount -o remount,rw / null::sysinit:/bin/mount -t proc proc /proc null::sysinit:/bin/mount -a #null::sysinit:/bin/hostname -F /etc/hostname #null::sysinit:/sbin/ifconfig lo 127.0.0.1 up #null::sysinit:/sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo
# Set up a couple of getty's #tty1::respawn:/sbin/getty 38400 tty1 #tty2::respawn:/sbin/getty 38400 tty2
# Put a getty on the serial port ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100
# Logging junk #null::sysinit:/bin/touch /var/log/messages null::respawn:/sbin/syslogd -n -m 0 #null::respawn:/sbin/klogd -n #tty3::respawn:/usr/bin/tail -f /var/log/messages
# init the app ttyS0::sysinit:/<path>/<init> # run any scripts ::sysinit:/etc/init.d/rcS # run cron null::respawn:/usr/sbin/crond -f # run http server null::respawn:/<path>/<http-server>
# Stuff to do for the 3-finger salute #::ctrlaltdel:/sbin/reboot
# Stuff to do before rebooting #null::shutdown:/usr/bin/killall klogd null::shutdown:/usr/bin/killall syslogd null::shutdown:/bin/umount -a -r #null::shutdown:/sbin/swapoff -a
параметры: respawn: перезапуск процесса в случае его окончания; Подключение USB-накопителяСоздать узлы для устройства в папке /dev:
cd dev mknod sda b 8 0 mknod sda1 b 8 1
Создать точку монтирования (например, папку /mnt/usb):
cd mnt mkdir usb
Дать точке монтирования права для чтения-записи всем пользователям:
chmod 777 usb
Для повышения отказоустойчивости требуем на накопителе файловую систему ext3. Так как используем ext3, после монтирования, если полный доступ необходим для всех, в скрипте после монтирования необходимо сделать изменение прав доступа:
mount -t ext3 -o <options> /dev/sda1 /<куда>/<монтировать> && chmod -R 777 /<куда>/<смонтировано>
Чтобы не указывать при монтировании параметры монтирования, можно в /etc/fstab добавить строчку, указав тип файловой системы, куда монтировать, параметры монтирования:
<file system> <mount pt> <type> <options> <dump> <pass> /dev/sda1 /<куда>/<монтировать> ext3 rw,noauto,async,noexec,noatime,nodiratime 0 0
•type - тип файловой системы: ext2, ext3, vfat, ntfs (только чтение), reiserfs, swap, udf,iso9660, hfsplus, auto; •options - параметры монтирования: •dump - параметры для программы dump. Определяют необходимость архивирования. 0 - выключено; •pass - параметр для утилиты fsck, задёт порядок проверки разделов файловой системы. 0 - выключено; 1 - должна проверяться первой и использоваться как корневая; 2 - для всех остальных;
Устройство вводаДля получения данных используется rotary encoder, данные от него получаем через интерфейс Event. Создать узлы для устройства в каталоге /dev:
cd dev mkdir input cd input mknod event0 c 13 64 ДисплейДля получения данных используется драйвер дисплея, поддерживающий кадровый буфер. Создать узлы для устройства в каталоге /dev:
cd dev mknod fb0 c 29 0 ЗвукДля звуковой системы ALSA cоздать узлы устройств в каталоге /dev/snd:
cd /dev mkdir snd chmod 755 snd cd snd mknod -m 660 controlC0 c 116 0 mknod -m 660 pcmC0D0p c 116 16 mknod -m 660 pcmC0D0c c 116 24 mknod -m 660 timer c 116 33 mknod -m 660 seq c 116 1
Если также используется эмуляция OSS, cоздать узлы для устройств в каталоге /dev:
cd /dev mknod -m 660 mixer c 14 0 mknod -m 660 sequencer c 14 1 mknod -m 660 midi c 14 2 mknod -m 660 dsp c 14 3 mknod -m 660 audio c 14 4 mknod -m 660 sndstat c 14 6 mknod -m 660 music c 14 8 mknod -m 660 dmmidi c 14 9 mknod -m 660 dmfm c 14 10 mknod -m 660 amixer c 14 11 mknod -m 660 adsp c 14 12 mknod -m 660 amidi c 14 13 mknod -m 660 admmidi c 14 14 ln -sf /dev/mixer /dev/mixer0 ln -sf /dev/midi /dev/midi0 ln -sf /dev/dsp /dev/dsp0 ln -sf /dev/audio /dev/audio0 ln -sf /dev/adsp /dev/adsp0 ln -sf /dev/amidi /dev/amidi0 Изменение строки приглашенияЧтобы привести строку приглашения терминала к виду:
<имя_машины>:<текущий_путь> #
изменить значение переменной PS1 в файле /etc/profile:
PS1='\h:\w # '
|
Предыдущая Содержание Следующая |