DM&P xLinux

Home : Products | Technical Support 2002/10/07

DM&P xLinux is a reduced Linux package for our user to test and use Linux easily. It is small and fast boot. We can add programs or components our user want.

xLinux Release 2 Environment Overview

We use LILO to replace SysLinux that user can use other compressed kernel image. We should divide MDM into two partition: one is DOS FAT partition where Linux kernel is, the other is EXT2 partition that used by Linux when we use SysLinux. After using LILO, we merge two partition into one partition to improve space usage.

Software Version Path
Linux Kernel 2.4.17 /boot/linux
Loader LILO 21.4-4 /
Shell BusyBox 0.60.2 /bin/busybox
FTP Server FTP4ALL 2.27 /usr/ftpd
HTTP Server WN Server 2.2.11 /usr/httpd
DHCP Client udhcp Client 0.9.6 /usr/dhcpcd
Share Library glibc 2.2.4 /lib
PPP Daemon/Client pppd 2.4.1 /sbin
Web Pages /usr/www
Size Requirement 5 MB

Setup Files

You can modify those files to build your own environment:

/boot/linux.img Linux kernel. You can use FTP to upload new kernel to /boot to update kernel.
/etc/init.d/rcS It will be ran first and you can add your initial programs into it. We add statement assign our IP in this file.
/etc/profile It work as autoexec.bat under DOS and will be run automatically. We start FTP and HTTP server on /etc/profile.
/etc/inittab Init is the parent of all processes and it will read inittab. View BusyBox document to get more information.
/usr/www Our web pages are here. lcd.cgi is a CGI program that can show text from browser to LCD.
/sbin/ftpd Script to load FTP server.
/sbin/httpd Script to load HTTP server.
/sbin/dhcpcd Script to use DHCP to get IP.
/sbin/ppp-on Script to dial-up with PPP protocol.
/sbin/ppp-off Script to disconnect PPP connection.
/etc/ppp/pap-secrets User name and password file for PPP dial-up.

Utilities

You can run those commands via keyboard or scripts. We list import commands:

Command Path Description
ppp-on /sbin Start a ppp connection.
ppp-off /sbin Stop a ppp connection.
ftpd /sbin Start a FTP server.
httpd /sbin Start a HTTP server.
dhcpcd /sbin Get IP address from DHCP server.
ifconfig /sbin Configure a network interface.
fsck.ext2 /sbin Check and repair a Linux EXT2 file system
lilo /sbin Install boot loader.
setserial /bin Get/set Linux serial port information.

Commands listed below are implemented by BusyBox: (You can go to http://www.busybox.net/downloads/BusyBox.html to get more information.)

Path Command
/bin cat, chgrp, chmod, chown, cp, date, dd, df, dmesg, echo, false, grep, gunzip, gzip, kill, ln, ls, mkdir, mknod, more, mount, msh, mv, pidof, ping, ps, pwd, rm, rmdir, sed, sh, sleep, sync, tar, touch, true, umount, uname, vi, zcat.
/sbin chat, halt, init, klogd, lsmod, mkswap, modprobe, poweroff, reboot, swapoff, swapon, syslogd.
/usr/bin [, basename, chvt, clear, cut, deallocvt, dirname, du, env, find, free, head, id, killall, logger, reset, sort, tail, telnet, tty, uniq, uptime, wc, which, whoami, xargs, yes.
/usr/sbin chroot

Install Your Program

This is a example form our Mity-Mite demo box Linux version. We ported our DOS LCM library to Linux and did the same things DOS version do.

We put FTP server on our Linux DOC/MDM that you can use FTP to upload your program .The user name is "dmp" and password is "dmp".We recommend you to install Linux(RedHat, Mandrake, SuSE...) on a PC to develop your application. Write and compile your program then upload it to Mity-Mite/Tiny module via FTP to test. You can kill the process if program is not correct .Repeat those steps until program is okay. There is a example:

  • We create a directory "/demo".
  • Put lcd(LCD driver), dmp.bmp (DM&P logo, will loaded by lcd) and lcd_time(send time to display every 0.5 second) into "/demo".
  • Write a script "demo" to load lcd and lcd_time.
    
    #!/bin/sh./lcd&
    sleep 5
    ./lcd_time&
  • Remember to change mode of upload files to executable
    
    chmod +x ./lcd
    chmod +x ./lcd_time
    chmod +x ./demo
  • Run "demo" to test. If program is not correct,use "ps" to find process ID of program to kill it. Go to step 1 until program is okay.
    
    # ps
      PID  Uid     Stat Command
        1 0         S    init
        2 0         S    [keventd]
        3 0         S    [ksoftirqd_CPU0]
        4 0         S    [kswapd]
        5 0         S    [bdflush]
        6 0         S    [kupdated]
       11 0         S    -sh
       14 0         S    ./ftpd
       17 0         S    /usr/httpd/wnsd -p 80
       19 0         S    ./lcd
       21 0         S    ./lcd_time
       22 0         R    ps
    # kill 21
    # kill 22

    Also, you can lunch "demo" script at /etc/profileto run it automatically when program is okay.

    Hint

    Before uploading your program, you should use "ldd" to check share library dependency. Upload share library to /lib first if need.
    
    [root@/root/grlcd]# ldd lcd
            libstdc++-libc6.2-2.so.3 => /usr/lib/libstdc++-libc6.2-2.so.3 (0x4002c000)
            libm.so.6 =
    
    > /lib/libm.so.6 (0x4006e000)
            libc.so.6 =
            >  /lib/libc.so.6 (0x40090000)
            /lib/ld-linux.so.2 =
            >  /lib/ld-linux.so.2 (0x40000000)
    [root@/root/grlcd]#

    How to use PPP dial-up ?

    You should modify some configuartion file for your ISP. We recommend you to use FTP to download it, modify it, then, upload it. We assume you connect modem to COM1 (our environment: 6042 + modem on COM1).

    1. /etc/ppp/pap-secrets

    This file contain user's account, you can see only one line:

    
    my_username  ppp0  my_password
    

    "my_username" is your dial-up account user name, "my_password" is password. You should change them with yours.

    2. /usr/sbin/ppp-on

    There are two lines.

    
    #!/bin/sh
    pppd nodetach lock modem crtscts /dev/ttyS0 38400 noipdefault defaultroute noauth \
    name my_username connect "chat -v '' ATDT123456789 CONNECT" &
    

    You should replace "my_username" with your user name as "/etc/ppp/pap-secrets". \ "ATDT123456789" is AT command to dial to ISP. You should reaplce "123456789" with your ISP's phone number.

    Now, you can type "ppp-on" to dial-up to your ISP and "ppp-off" to hang-up. Type "ifconfig" to display network configuration, you can find device "eth0" and "ppp0". Any problem, mail us to help you to dial-up.

    Download and installation

    Reference Links

    Linux Kernel http://www.kernel.org/
    BusyBox http://www.busybox.net/
    FTP4ALL http://www.ftp4all.de/v3/noframes/index_v3.html
    WN Server http://hopf.math.nwu.edu/
    udhcp http://udhcp.busybox.net/

    Technical Support

    If you have any problem, feel free to mail to soc@dmp.com.tw please.We will do our best to answer your question.


    DMP Electronics Inc. All rights reserved. Email us: info@dmp.com.tw