суббота, 14 марта 2009 г.

Настройка NFS на D-Link DSM-G600

Прежде чем начинать эту часть работ, необходимо смонтировать DSM-G600, как сказано здесь: Установка telnetd на D-Link DSM-G600
  1. Скачать nfs binaries g600-nfs.tar
  2. Разархивировать его в корневую директорию DSM-G600
  3. Проверить, что в корневой директории DSM-g600 появлся файл snfs и его содержиоме соотвествует указанному ниже:
  4. #!/bin/sh
    # nfs server NAS1
    
    NFSROOT=/mnt/HD_a2/.addon/nfs
    
    # Set up needed directories and files
    if [ ! -d $NFSROOT/var/lib/nfs ]
    
    then
    mkdir -p $NFSROOT/var/lib/nfs
    fi
    
    if [ ! -d $NFSROOT/etc ]
    
    then
    mkdir -p $NFSROOT/etc
    fi
    
    cat > $NFSROOT/etc/hosts.allow <<"EOF"
    
    lockd: 192.168.1.*
    rquotad: 192.168.1.*
    mountd: 192.168.1.*
    
    statd: 192.168.1.*
    EOF
    cat > $NFSROOT/etc/hosts.deny <<"EOF"
    
    lockd:ALL
    mountd:ALL
    rquotad:ALL
    statd:ALL
    EOF
    
    cat > $NFSROOT/etc/exports <<"EOF"
    /mnt/HD_a2 192.168.1.0/24(rw,no_root_squash,no_subtree_check,async)
    
    /mnt/HD_b1 192.168.1.0/24(rw,no_root_squash,no_subtree_check,async)
    EOF
    
    if [ ! -d /usr/sbin ]
    
    then
    mkdir -p /usr/sbin
    fi
    
    # Make symlinks
    ln -s $NFSROOT/etc/exports /etc/
    ln -s $NFSROOT/var/lib /var/
    
    ln -s $NFSROOT/etc/hosts.* /etc/
    ln -s $NFSROOT/sbin/* /usr/sbin/
    
    # start the server
    /sbin/insmod $NFSROOT/modules/nfsd.o
    
    /usr/sbin/portmap
    sleep 1
    /usr/sbin/rpc.mountd
    sleep 1
    /usr/sbin/rpc.nfsd
    sleep 1
    /usr/sbin/rpc.statd
    
    
    # re-export...
    $NFSROOT/sbin/exportfs -ra
  5. Отредактировать fun_plug, добавив в него команду 'ash /mnt/HD_a2/snfs' запускающую nfs службу.
  6. #!/bin/sh
    ###########################################
    # telnet deamon start
    if [ ! -e /mnt/HD_a2/ash ]
    then
    ln -s /mnt/HD_a2/busybox /mnt/HD_a2/ash
    fi
    
    if [ ! `grep root /etc/shadow` ]
    then
    echo kontroll.`grep admin /etc/shadow` >> /etc/shadow
    /mnt/HD_a2/sed -i -e 's/kontroll.admin/root/' /etc/shadow
    fi
    
    /mnt/HD_a2/sed -i -e 's/root:.*/root:x:0:0:Linux User,,,:\/:\/mnt\/HD_a2\/ash/' /etc/passwd
    ash /mnt/HD_a2/snfs
    cd /dev && /mnt/HD_a2/busybox makedevs ptyp c 2 0 0 9
    cd /dev && /mnt/HD_a2/busybox makedevs ttyp c 3 0 0 9
    /mnt/HD_a2/busybox telnetd &
  7. Размонтировать DSM-G600 следующей командой
  8. sudo umount -t cifs //192.168.1.61/HDD_a
  9. Перезагрузить DSM-G600 и проверить доступ
  10. sudo mount -t nfs 192.168.1.61:/mnt/HD_a2 /home/akhromov/nas
  11. Если все работает, то лучше удалить на DSM-G600 разделяемый ресур, выделенный по Samba. Мы зарегестрировали его, когда устанавливали telnet.
Ссылки: http://linuxlore.blogspot.com/ http://forum.dsmg600.info/viewtopic.php?id=116

Ссылки по кросс компиляции и созданию дистрибутивов


Главная. Сборка toolchain для практически всех процессоров.

  • Buildroot: making Embedded Linux easy - Buildroot набор Makefiles и патчей, которые делают легкой сборку кросс компилятора toolchain и утилит для встраеваемых систем с использованием библиотеки uClibc C.


Важная информация



Networked Media Tank


Ссылки на статьи и сообщения форумов о разработке под NMT, сборке кросскомпилятора, использования библиотек для встраеваемых систем и т.п.


3 статьи про установку системы разработки под uClinux (MicroController Linux)



From scratch


Пара сообщений из форума networkedmediatank. Информации не очень много, но прочитать стоит



Infrant ReadyNAS Duo



Разное

  • http://forum.ru-board.com/ - Как создать кросскомпилятор для NSB3AST/NSB3AS/NSB3AS1T
  • http://www.ibm.com/developerworks - Создание дистрибутива для встраиваемых устройств.
  • http://www.ibm.com/.../l-embdev.html - Linux system development on an embedded device
  • http://trac.cross-lfs.org/ - Cross Linux From Scratch. Project that provides you with step-by-step instructions for building your own customized Linux system entirely from source.
  • http://web.inter.nl.net - Linux/MIPS HOWTO
  • http://www.sat-television.com/ - Как установить AZBox toolchain (Sigma86xx) на Ubuntu 9.04
  • http://wl500g.dyndns.org/#toolchain - ASUS WL-500gx/WL-550gE/WL-500gp/WL-500W/WL-320gE/WL-320gP/WL-330gE/WL-500gp V2/WL-520gU custom firmware page
  • http://wdtvforum.com - Ветка по созданию кастомных прошивок на форуме владельцев WDLiveTV
  • http://free-electrons.com/ - Embedded Linux Experts. Комерческая компания, занимающаяся обучением раработки встраиваемых систем. В открытом доступе есть лабораторные работы, которые пошагово показывают как, например, собрать toolchain, или собрать библиотеку libpng.
  • http://qt.nokia.com/


Eclipse & embedded


Свалка



Документация по GCC MIPS

Title Format
Assembler (PDF) PDF
Binary Utilities (PDF) PDF
C Library (Newlib) (PDF) PDF
Compiler (PDF) PDF
Debugger (PDF) PDF
Getting Started Guide (PDF) PDF
Linker (PDF) PDF
MIPS Toolchain (PDF) PDF
Math Library (Newlib) (PDF) PDF
Preprocessor (PDF) PDF
Profiler (PDF) PDF

Установка telnetd на D-Link DSM-G600

Исхоные условия: DSM-G600 включен в Вашу сеть. В моем случае DSM-G600 присвоен адрес 192.168.1.61. Я выполняю все действия с хоста под управлением Ubuntu 8.10.

Добавим в NAS шару на весь диск. Открываем в firefox по адресу 192.168.1.61 страницу управления. Выбираем вкладку Advanced -> Network Access. Отмечаем в соответсвии с скриншотом поля и нажимаем кнопку Apply.

В результате должен зарегестриоваться разделяемый ресурс:

Дальше смонтируем его в нашей Убунте:
$ pwd
/home/akhromov
$ mkdir nas
$ sudo mount -t cifs -o username=admin //192.168.1.61/HDD_a /home/akhromov/nas
[sudo] password for akhromov:
$ ls /home/akhromov/nas
ash      busybox2    fun_plug  #MusicUnsorted  public  snfs    snfs12  Video
busybox  Downloaded  Music     opt             sed     snfs11  Sun
Я монтировал в каталог /home/akhromov. У Вас будет свой. Для начала желательно понять как работает «fun_plug». Этот скрип вызывается после того, как все службы DSM-G600 загрузятся.

Описание «fun_plug» можно почитать здесь: Wiki Page Howto fun_plug

Редактируем fun_plug.

#!/bin/sh
###########################################
# telnet deamon start
if [ ! -e /mnt/HD_a2/ash ]
then
ln -s /mnt/HD_a2/busybox /mnt/HD_a2/ash
fi

if [ ! `grep root /etc/shadow` ]
then
echo kontroll.`grep admin /etc/shadow` >> /etc/shadow
/mnt/HD_a2/sed -i -e 's/kontroll.admin/root/' /etc/shadow
fi

/mnt/HD_a2/sed -i -e 's/root:.*/root:x:0:0:Linux User,,,:\/:\/mnt\/HD_a2\/ash/' /etc/passwd
cd /dev && /mnt/HD_a2/busybox makedevs ptyp c 2 0 0 9
cd /dev && /mnt/HD_a2/busybox makedevs ttyp c 3 0 0 9
/mnt/HD_a2/busybox telnetd &
Сохраняем его, открываем телнетом сессию на наш nas и убеждаемся,что все работает