The website "dmilvdv.narod.ru." is not registered with uCoz.
If you are absolutely sure your website must be here,
please contact our Support Team.
If you were searching for something on the Internet and ended up here, try again:

About uCoz web-service

Community

Legal information

Файловая система

Файловая система

Предыдущая  Содержание  Следующая  V*D*V

Работа с файловой системой происходит с правами администратора.

 

Создать директорию /rootfs для файловой системы.

Распаковать /<buildroot dir>/binaries/uclibc/rootfs.arm_nofpu.tar.bz2 в папку /rootfs
или скопировать /<buildroot dir>/project_build_arm/uclibc/root в папку /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 - параметры монтирования:
auto или noauto: монтировать автоматически при старте или монтирование делается только явно;
ro или rw: только чтение или чтение и запись;
sync или async: запись без буферирования или запись с буферированием;
exec или noexec: разрешить запускать программы или запретить;
suid или nosuid: разрешение или блокировка работы suid, и sgid бит;
user или nouser: разрешение или запрет монтирования от обычного пользователя;
atime или noatime: обновлять или не обновлять время последнего обращения к ноду;
diratime или nodiratime: обновлять или не обновлять время последнего обращения для директории, содержащей нод;
nls=utf8: включение поддержки utf-8 для NTFS;
utf8: включение поддержки utf-8 для FAT;
defaults: по умолчанию включены опции rw, suid, dev, exec, auto, nouser, async;

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 # '

 

Предыдущая  Содержание  Следующая