顯示包含「linux」標籤的文章。顯示所有文章
顯示包含「linux」標籤的文章。顯示所有文章

2021年3月17日星期三

Zynq: Build Your Own Petalinux

Prerequisite

sudo apt install gcc git make net-tools libncurses5-dev tftpd zlib1g-dev libssl-dev flex bison libselinux1 gnupg wget diffstat chrpath socat xterm autoconf libtool tar unzip texinfo zlib1g-dev gcc-multilib build-essential libsdl1.2-dev libglib2.0-dev zlib1g:i386 screen pax gzip gawk
 

Install FTP server

sudo apt install tftpd-hpa
service tftpd-hpa restart
Service tftpd-hpa status


Download and Install Petalinux (v2020.2)

Download petalinux installer from official Xilinx web site

chmod +x (installer)

mkdir -p ~/petalinux/2020.2

(installer) -d ~/petalinux/2020.2


Change to Use Bash Shell Script

chsh -s /bin/bash

# Logout and log back in after to observe the sh is changed
 

Environment Check and Setup

source ~/petalinux/2020.2/setting.sh

# Ensure working environment has been set

echo $PETALINUX


Minimum Hardware Requirement

One TTC (Triple Timer Counter)

External Memory Controller with at least 32MB of memory

UART

QSPI / SD Card


System user dts location (connect with additional peripheral?)

my-petalinux/project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi


Create and Build the Project

cd ~

petalinux-create --type project --template zynq --name my-petalinux

cd my-petalinux

# Config from xsa

petalinux-config --get-hw-description=(path-containing-xsa)

# Build the package

petalinux-build

# Generate Boot Image

petalinux-package --boot --fsbl images/linux/zynq_fsbl.elf --fpga images/linux/system_wrapper.bit --u-boot

 

Prepare the SD Card

Use fdisk to assign

  • 1st partition as W95 FAT32 (Partition Code: b) primary partition, 2048-50000 = ~24MB
  • 2nd partition as EXT4, primary partition

sudo fdisk /dev/sd(?)

n = new partition

d = delete partition

t = change partition type (Code)

w = apply changes

a = active partition


mkfs.vfat -F32 vfat /dev/sd(?)1

mkfs.ext4 /dev/sd(?)2


Test U-Boot and Linux Kernel

Copy BOOT.BIN, image.ub and boot.scr into SD card FAT32 partition

Copy rootfs.cpio into EXT4 partition

Make sure the SD jumper is selected

Press reset button, output message will be shown on serial console

U-Boot 2020.01 (Mar 17 2021 - 16:35:57 +0000)                                   
                                                                                
CPU:   Zynq 7z010                                                               
Silicon: v3.1                                                                   
DRAM:  ECC disabled 512 MiB                                                     
Flash: 0 Bytes                                                                  
NAND:  0 MiB                                                                    
MMC:   mmc@e0100000: 0
=====================
Found U-Boot script /boot.scr                                                   
2010 bytes read in 12 ms (163.1 KiB/s)
===================== 
Starting kernel ...                                                             
                                                                                
Booting Linux on physical CPU 0x0                                               
Linux version 5.4.0-xilinx-v2020.2 (oe-user@oe-host) (gcc version 9.2.0 (GCC)) 1
CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d                 
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache        
OF: fdt: Machine model: xlnx,zynq-7000                                          
earlycon: cdns0 at MMIO 0xe0000000 (options '115200n8')                         
printk: bootconsole [cdns0] enabled                                             
Memory policy: Data cache writealloc                                            
cma: Reserved 16 MiB at 0x1f000000 


Remarks:

BOOT.BIN:

  • fsbl.elf (First stage bootloader)
  • u-boot.elf (Second stage bootloader)
  • design.bit (FPGA bitstream)

image.ub

  • system.dtb
  • uImage
  • rootfs

 



2021年3月2日星期二

Test devmem in rpi2 by shell script

#!/bin/bash

#Test devmem (Toggle RED LED) in rpi2 by shell script

GPIO_BASE=$((0x3F200000))
LED_GPFSEL=4
LED_GPFBIT=21
LED_GPSET=8
LED_GPCLR=11
LED_GPIO_BIT=3

#addr=$(($GPIO_BASE + $LED_GPFSEL * 4))
#rvalue=$(devmem $(($addr)) 32)

addr=$(($GPIO_BASE + $LED_GPCLR * 4))
devmem $((addr)) 32 $((1 << $LED_GPIO_BIT))

sleep 5

addr=$(($GPIO_BASE + $LED_GPSET * 4))
devmem $((addr)) 32 $((1 << $LED_GPIO_BIT))

2021年3月1日星期一

List Device Tree in Linux (embedded system)

The device tree is located at

cd /proc/device-tree/

lrwxrwxrwx   device-tree -> /sys/firmware/devicetree/base


Install tree package to view the device tree hierarchy


further investigate the content

plain text file: cat (file)

hex file: hexdump -C (file)

alias grep

alias grepc='grep --include=\*{h,c,cpp}'

alias grepdts='grep --include=\*{dts,dtsi}'

 

List board information in Linux

#!/bin/bash

RED='\033[0;31m'
NC='\033[0m'    # No Color

echo -e "${RED}====uanme====${NC}"
uname -a

for info in cpuinfo meminfo devices interrupts dma filesystems ioports
do
    echo -e "${RED}===='$info'=====${NC}"
    cat /proc/$info
done

echo -e "${RED}====lsmod====${NC}"
lsmod



2017年3月10日星期五

BASH reference

#!/bin/bash    #tells *nix BASH should be used to run it

Special Parameters
$#    #Store the number of arguments passed from the command line
$1    #first parameter
$?    #Store the exit status of the last executed command
$_    #Print the last argument of the previous command
$$    #Return the process ID of the shell
$!     #Return the process ID of the last executed background process

${#var}    #Number of characters in $var
${#array} #The length of the first element in the array.

${para}  #same as $para. May be used for concatenating variables with strings.
${para-default},${para:-default}   #if para not set, use default
${para=default},${para:=default}    #if para not set, set it to default
${parameter+alt_value}, ${parameter:+alt_value}    #If parameter set, use alt_value, else use null string.
${parameter?err_msg}, ${parameter:?err_msg}If parameter set, use it, else print err_msg and abort the script with an exit status of 1.

The : makes a difference only when parameter has been declared and is null


$*     #* Expands to the positional parameters, starting from one. When the expansion occurs within double quotes, it expands to a single word with the value of each parameter separated by the first character of the IFS special variable. That is, "$*" is equivalent to "$1c$2c...", where c is the first character of the value of the IFS variable. If IFS is unset, the parameters are separated by spaces. If IFS is null, the parameters are joined without intervening separators.

$@    #@ Expands to the positional parameters, starting from one. When the expansion occurs within double quotes, each parameter expands to a separate word. That is, "$@" is equivalent to "$1" "$2" ... If the double-quoted expansion occurs within a word, the expansion of the first parameter is joined with the beginning part of the original word, and the expansion of the last parameter is joined with the last part of the original word. When there are no positional parameters, "$@" and $@ expand to nothing (i.e., they are removed).

For more details, please check:
http://tldp.org/LDP/abs/html/special-chars.html

[ is a synonym for test command. Even if it is built in to the shell it creates a new process.

[[ is a new improved version of it, which is a keyword, not a program.

Conditional Expression
[expr1 -ne expr2]    #Return true if expr1 is not equal to expr2
[expr1 -eq expr2]    #Return true if expr1 is equal to expr2
[expr1 -gt expr2]    #Return true if expr1 is greater than expr2
[expr1 -ge expr2]    #Return true if expr1 is greater than or equal to expr2
[expr1 -lt expr2]     #Return true if expr1 is less than expr 2
[expr1 -le expr2]    #Return true if expr1 is less than or equal to expr2
[-z  expr]    #Return true if the expression is null or empty
[expr =~ regular_expr]    #Return true if the regular expression is matched.
[expr1 -a expr2],[expr1]&&[expr2]    #Return true if both the expression is and
[expr1 -o expr2],[expr1]||[expr2]   #Return true if either of the expr1 or expr2  is true

[-a filepath],[-e filePath]    #Return true if file exists
[-f  filepath]   #Return true if it is file
[-d directory]    #Return true if it is directory
[-L filepath],[-h filePath]    #Return true if file is a symbolic link
[-S socket]    #Return true if file exists and socket file
[-b filepath]  #Return true if file is a block device
[-c filepath]  #Return true if file is a char device

[-r filepath]   #Return true if file is readable
[-w filepath]    #Return true if file is writable
[-x filepath]    #Return true if file is executable
[-u filepath]    #Return true if SUID is set
[-g filepath]    #Return true if SGID is set
[-k filepath]    #Return true if sticky bit is set
[-s filepath]    #Return true if file exists and has a size greater than 0

Number Notation
echo $((0xFFFF))          #Hex, Display 65535
echo $((032))                 #Octal, Output 26
echo $((2#11111111))  #Binary, Output 255

Frequency Used Command
source filepath    #executes the contents of a script in the current shell

2017年3月7日星期二

What's inside initrd (x86_64)

1 File Only - GenuineIntel.bin
Suspect extraction failed.
Get the answer from stackexchange with few modification.

http://unix.stackexchange.com/questions/163346/why-is-it-that-my-initrd-only-has-one-directory-namely-kernel

$file initrd.img
initrd.img: ASCII cpio archive (SVR4 with no CRC)
$mkdir initTree && cd initTree
$cpio -idv < ../initrd.img
`-- kernel
    `-- x86
        `-- microcode
            `-- GenuineIntel.bin
The cpio block skip method given doesn't work reliably. That's because the initrd images didn't have both archives concatenated on a 512 byte boundary.

Instead, do this:

apt-get install binwalk
DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             ASCII cpio archive (SVR4 with no CRC), file name: "kernel", file name length: "0x00000007", file size: "0x00000000"
120           0x78            ASCII cpio archive (SVR4 with no CRC), file name: "kernel/x86", file name length: "0x0000000B", file size: "0x00000000"
244           0xF4            ASCII cpio archive (SVR4 with no CRC), file name: "kernel/x86/microcode", file name length: "0x00000015", file size: "0x00000000"
376           0x178           ASCII cpio archive (SVR4 with no CRC), file name: "kernel/x86/microcode/GenuineIntel.bin", file name length: "0x0000002A", file size: "0x00005400"
22032         0x5610          ASCII cpio archive (SVR4 with no CRC), file name: "TRAILER!!!", file name length: "0x0000000B", file size: "0x00000000"
22528         0x5800          gzip compressed data, from Unix, last modified: 2017-03-06 14:00:21
10181078      0x9B59D6        MySQL ISAM index file Version 3
 
dd if=initrd.img bs=22528 skip=1 | gunzip | cpio -id
1778+1 records in
1778+1 records out
40073444 bytes (40 MB, 38 MiB) copied, 3.15216 s, 12.7 MB/s
209980 blocks
 ls -l
total 39208
drwxr-xr-x  2 yip yip     4096 Mar  7 21:36 bin
drwxr-xr-x  3 yip yip     4096 Mar  7 21:36 conf
drwxr-xr-x 10 yip yip     4096 Mar  7 21:36 etc
-rwxr-xr-x  1 yip yip     6907 Mar  7 21:36 init
-rw-r--r--  1 yip yip 40095972 Mar  7 21:30 initrd.img
drwxr-xr-x  9 yip yip     4096 Mar  7 21:36 lib
drwxr-xr-x  2 yip yip     4096 Mar  7 21:36 lib64
drwxr-xr-x  2 yip yip     4096 Mar  7 21:36 run
drwxr-xr-x  2 yip yip     4096 Mar  7 21:36 sbin
drwxr-xr-x  7 yip yip     4096 Mar  7 21:36 scripts
drwxr-xr-x  4 yip yip     4096 Mar  7 21:36 usr
drwxr-xr-x  4 yip yip     4096 Mar  7 21:36 var

2014年11月30日星期日

Support exFAT in debian

Install relevant applications:
  sudo apt-get install exfat-fuse exfat-utils

List the disk
  fdisk -l 

Format:

  mkfs.exfat -n LABEL /dev/sdXn
Check file system command:
  fsck.exfat /dev/sdXn

Install flash plugin

apt-get install flashplugin-nonfree

2014年3月31日星期一

My conkyrc file (~/.conkyrc)

background yes
use_xft yes
xftfont Sans:size=8
xftalpha 1
update_interval 1.0
total_run_times 0
own_window yes
own_window_transparent yes
own_window_type desktop
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
double_buffer yes
minimum_size 100 100
maximum_width 300
draw_shades yes
draw_outline no
draw_borders no
draw_graph_borders yes
default_color white
default_shade_color black
default_outline_color white
alignment top_right
gap_x 12
gap_y 80
no_buffers yes
uppercase no
cpu_avg_samples 2
override_utf8_locale no

TEXT
${color FFFFFF}${font sans-serif:bold:size=8:}SYSTEM${hr 2}
${color FFFFFF}${font sans-serif:normal:size=8}$sysname $kernel $alignr $machine
Host:$alignr$nodename
Uptime:$alignr$uptime

${font sans-serif:bold:size=8}${color FFFFFF}PROCESSORS ${hr 2}${font sans-serif:normal:size=8}${color
FFFFFF}
CPU: ${cpu cpu0}% ${cpubar cpu0}

${font sans-serif:bold:size=8}${color FFFFFF}MEMORY ${hr 2}
${font sans-serif:normal:size=8}${color FFFFFF}RAM $alignc $mem / $memmax $alignr $memperc%
$membar

${font sans-serif:bold:size=8}${color FFFFFF}DISKS ${hr 2}
${font sans-serif:normal:size=8}${color FFFFFF}/ $alignc ${fs_used /} / ${fs_size /} $alignr${fs_used_perc /}%
${fs_bar /}
Home $alignc ${fs_used /home/yip} / ${fs_size /home/yip} $alignr ${fs_used_perc /home/yip}%
${fs_bar /home/yip}

${font sans-serif:bold:size=8}${color FFFFFF}TOP PROCESSES ${hr 2}
${font sans-serif:normal:size=8}${color FFFFFF}
${top_mem name 1}${alignr}${top mem 1} %
${top_mem name 2}${alignr}${top mem 2} %
${top_mem name 3}${alignr}${top mem 3} %
${top_mem name 4}${alignr}${top mem 4} %
${top_mem name 5}${alignr}${top mem 5} %

${font sans-serif:bold:size=8}${color FFFFFF}NETWORK ${hr 2}
${font sans-serif:normal:size=8}${color FFFFFF}IP address: $alignr ${addr enp2s0}

$alignr Download
${downspeedgraph enp2s0}
${downspeed enp2s0}/s $alignr ${totaldown enp2s0}

$alignr Upload
${upspeedgraph enp2s0}
${upspeed enp2s0}/s $alignr ${totalup enp2s0}

${color #FFFFFF}Inbound Connection ${alignr} Local Service/Port$color
 ${tcp_portmon 1 32767 rhost 0} ${alignr} ${tcp_portmon 1 32767 lservice 0}
 ${tcp_portmon 1 32767 rhost 1} ${alignr} ${tcp_portmon 1 32767 lservice 1}
 ${tcp_portmon 1 32767 rhost 2} ${alignr} ${tcp_portmon 1 32767 lservice 2}
 ${tcp_portmon 1 32767 rhost 3} ${alignr} ${tcp_portmon 1 32767 lservice 3}
 ${tcp_portmon 1 32767 rhost 4} ${alignr} ${tcp_portmon 1 32767 lservice 4}
${color #FFFFFF}Outbound Connection ${alignr} Remote Service/Port$color
 ${tcp_portmon 32768 61000 rhost 0} ${alignr} ${tcp_portmon 32768 61000 rservice 0}
 ${tcp_portmon 32768 61000 rhost 1} ${alignr} ${tcp_portmon 32768 61000 rservice 1}
 ${tcp_portmon 32768 61000 rhost 2} ${alignr} ${tcp_portmon 32768 61000 rservice 2}
 ${tcp_portmon 32768 61000 rhost 3} ${alignr} ${tcp_portmon 32768 61000 rservice 3}
 ${tcp_portmon 32768 61000 rhost 4} ${alignr} ${tcp_portmon 32768 61000 rservice 4}
 ${tcp_portmon 32768 61000 rhost 5} ${alignr} ${tcp_portmon 32768 61000 rservice 5}
 ${tcp_portmon 32768 61000 rhost 6} ${alignr} ${tcp_portmon 32768 61000 rservice 6}
 ${tcp_portmon 32768 61000 rhost 7} ${alignr} ${tcp_portmon 32768 61000 rservice 7}
 ${tcp_portmon 32768 61000 rhost 8} ${alignr} ${tcp_portmon 32768 61000 rservice 8}
 ${tcp_portmon 32768 61000 rhost 9} ${alignr} ${tcp_portmon 32768 61000 rservice 9}

2013年11月9日星期六

Install eclipse in linux

sudo apt-get install eclipse eclipse-jdt eclipse-pde eclipse-platform eclipse-rcp eclipse-cdt g++


Support C/C++: eclipse-cdt g++

2013年11月1日星期五

Download Java SDK for ubuntu

For Oracle-JDK,
 
Step1)
Remove the OpenJDK
sudo apt-get purge openjdk*
 
Step2)
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
 
Step3)
Step3a) For JAVA8, sudo apt-get install oracle-java8-installer
Step3b) For JAVA7, sudo apt-get install oracle-java7-installer
Step3c) For JAVA6, sudo apt-get install oracle-java6-installer   
 
__________________________________________________________________________
For Open-JDK, 
 
$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
$ sudo apt-get update
$ sudo apt-get install openjdk-6-jdk
 
 
openjdk-6-jdk 
openjdk-7-jdk

2013年8月18日星期日

ncat usage


quota from "http://nmap.org/ncat/guide/ncat-usage.html":


Main usage:

Ncat always operates in one of two basic modes: connect mode and listen mode. In connect mode, Ncat initiates a connection (or sends UDP data) to a service that is listening somewhere. For those familiar with socket programming, connect mode is like using the connect function. In listen mode, Ncat waits for an incoming connection (or data receipt), like using the bind and listen functions. You can think of connect mode as client mode and listen mode as server mode.

Connect mode:
ncat <host> [<port>]

Listen mode:
ncat -l [<host>] [<port>]

In listen mode, <host> controls the address on which Ncat listens; if you omit it, Ncat will bind to all local interfaces (INADDR_ANY). If the port number is omitted, Ncat uses its default port 31337.Typically only privileged (root) users may bind to a port number lower than 1024. A listening TCP server normally accepts only one connection and will exit after the client disconnects. Combined with the --keep-open option, Ncat accepts multiple concurrent connections up to the connection limit. With --keep-open (or -k for short), the server receives everything sent by any of its clients, and anything the server sends is sent to all of them. A UDP server will communicate with only one client (the first one to send it data), because in UDP there is no list of “connected” clients.

Ncat can use TCP, UDP, SCTP, SSL, IPv4, IPv6, and various combinations of these. TCP over IPv4 is the default.

-------------------------------------------------------------------------

File transfer using ncat:

input file on host1
output file on host2

Transfer a file, receiver listens
host2$ ncat -l > outputfile
host1$ ncat --send-only host2 < inputfile

Transfer a file, sender listens
host1$ ncat -l --send-only < inputfile
host2$ ncat host1 > outputfile


Transfer a bundle of files

host2$ ncat -l | tar xzv
host1$ tar czv <files> | ncat --send-only host2


---------------------------------------------------------------------------


Example. Running a command with --sh-exec
ncat -l --sh-exec "echo `pwd`"

Example. Ncat as mail client

$ ncat -C mail.example.com 25
220 mail.example.com ESMTP
HELO client.example.com
250 mail.example.com Hello client.example.com
MAIL FROM:a@example.com
250 OK
RCPT TO:b@example.com
250 Accepted
DATA
354 Enter message, ending with "." on a line by itself
From: a@example.com
To: b@example.com
Subject: Greetings from Ncat

Hello. This short message is being sent by Ncat.
.
250 OK
QUIT
221 mail.example.com closing connection

2013年8月16日星期五

Compress / Extract Files using tar Command

tar.bz2 file:
Compress:
tar -jcvf archive_name.tar.bz2 directory_to_compress

Extract:
tar -jxvf archive_name.tar.bz2
tar -jxvf archive_name.tar.bz2 -C /tmp/extract_here/

------------------------------------------------------------------------

tar.gz file:
Compress:
:tar -cvzf archive_name.tar.gz directory_to_compress/

Extract:
tar -zxvf archive_name.tar.gz
tar -zxvf archive_name.tar.gz -C /tmp/extract_here/

------------------------------------------------------------------------

tar file:
Compress:
tar -cvf archive_name.tar directory_to_compress
Extract:
tar -xvf archive_name.tar
tar -xvf archive_name.tar -C /tmp/extract_here/

------------------------------------------------------------------------

tar.xz file:
Compress:
tar -cvJf archive_name.tar.xz
Extract:
tar -xvJf archive_name.tar.xz
tar -xvJf archive_name.tar.xz -C /tmp/extract_here/

2013年8月15日星期四

Setup COM port in VirtualBox (Host: XUbuntu, Guest: Windows XP)

In VirtualBox Setting,
Port Number: COM1
IRQ: 4
I/O Port: 0x3F8
Port Mode: Host Device
Port/File Path: /dev/ttyS0

If encounter read/write permission error,
add the current Linux account to:
'dialout' Group

In xubuntu, System Administrator > 'Edit Group...' , add current user to the 'dialup' group

Check serial port in Linux:
dmesg | grep tty
If the screen shows out ttyS0, it means COM1

FYI,
as previous 'dialout' group account stated,
ls -l /dev/ttyS0 can view the COM1 permission group.

Executing background task while running SSH

nohup ./whatever > /dev/null 2>&1 &

Enable / Lock root account in Linux

Lock root account in Linux:
sudo passwd -l root

Enable root account in Linux:
sudo passwd root


2013年7月28日星期日

BusyBox Default Function List

$ busybox
BusyBox v1.18.0 (2010-12-01 19:10:28 CET) multi-call binary.
Copyright (C) 1998-2009 Erik Andersen, Rob Landley, Denys Vlasenko
and others. Licensed under GPLv2.
See source distribution for full notice.

Usage: busybox [function] [arguments]...
   or: busybox --list[-full]
   or: function [arguments]...

 BusyBox is a multi-call binary that combines many common Unix
 utilities into a single executable.  Most people will create a
 link to busybox for each function they wish to use and BusyBox
 will act like whatever it was invoked as.

Currently defined functions:
 [, [[, acpid, add-shell, addgroup, adduser, adjtimex, ar, arp, arping,
 awk, base64, basename, bbconfig, beep, blkid, blockdev, bootchartd,
 brctl, bunzip2, bzcat, bzip2, cal, cat, catv, chat, chattr, chgrp,
 chmod, chown, chpasswd, chpst, chroot, chrt, chvt, cksum, clear, cmp,
 comm, conspy, cp, cpio, crond, crontab, cryptpw, cttyhack, cut, date,
 dc, dd, deallocvt, delgroup, deluser, depmod, devfsd, devmem, df,
 dhcprelay, diff, dirname, dmesg, dnsd, dnsdomainname, dos2unix, dpkg,
 dpkg-deb, du, dumpkmap, dumpleases, echo, ed, egrep, eject, env,
 envdir, envuidgid, ether-wake, expand, expr, fakeidentd, false, fbset,
 fbsplash, fdflush, fdformat, fdisk, fgconsole, fgrep, find, findfs,
 flash_eraseall, flash_lock, flash_unlock, flashcp, flock, fold, free,
 freeramdisk, fsck, fsck.minix, fsync, ftpd, ftpget, ftpput, fuser,
 getopt, getty, grep, gunzip, gzip, halt, hd, hdparm, head, hexdump,
 hostid, hostname, httpd, hush, hwclock, id, ifconfig, ifdown,
 ifenslave, ifplugd, ifup, inetd, init, inotifyd, insmod, install,
 ionice, iostat, ip, ipaddr, ipcalc, ipcrm, ipcs, iplink, iproute,
 iprule, iptunnel, kbd_mode, kill, killall, killall5, klogd, last,
 length, less, linux32, linux64, linuxrc, ln, loadfont, loadkmap,
 logger, login, logname, logread, losetup, lpd, lpq, lpr, ls, lsattr,
 lsmod, lspci, lsusb, lzcat, lzma, lzop, lzopcat, makedevs, makemime,
 man, md5sum, mdev, mesg, microcom, mkdir, mkdosfs, mke2fs, mkfifo,
 mkfs.ext2, mkfs.minix, mkfs.reiser, mkfs.vfat, mknod, mkpasswd, mkswap,
 mktemp, modinfo, modprobe, more, mount, mountpoint, mpstat, msh, mt,
 mv, nameif, nanddump, nandwrite, nbd-client, nc, netstat, nice, nmeter,
 nohup, nslookup, ntpd, od, openvt, passwd, patch, pgrep, pidof, ping,
 ping6, pipe_progress, pivot_root, pkill, pmap, popmaildir, poweroff,
 powertop, printenv, printf, ps, pscan, pwd, raidautorun, rdate, rdev,
 readahead, readlink, readprofile, realpath, reboot, reformime,
 remove-shell, renice, reset, resize, rev, rfkill, rm, rmdir, rmmod,
 route, rpm, rpm2cpio, rtcwake, run-parts, runlevel, runsv, runsvdir,
 rx, script, scriptreplay, sed, sendmail, seq, setarch, setconsole,
 setfont, setkeycodes, setlogcons, setsid, setuidgid, sh, sha1sum,
 sha256sum, sha512sum, showkey, slattach, sleep, smemcap, softlimit,
 sort, split, start-stop-daemon, stat, strings, stty, su, sulogin, sum,
 sv, svlogd, swapoff, swapon, switch_root, sync, sysctl, syslogd, tac,
 tail, tar, taskset, tcpsvd, tee, telnet, telnetd, test, tftp, tftpd,
 time, timeout, top, touch, tr, traceroute, traceroute6, true, tty,
 ttysize, tunctl, tune2fs, ubiattach, ubidetach, udhcpc, udhcpd, udpsvd,
 umount, uname, uncompress, unexpand, uniq, unix2dos, unlzma, unlzop,
 unxz, unzip, uptime, usleep, uudecode, uuencode, vconfig, vi, vlock,
 volname, wall, watch, watchdog, wc, wget, which, who, whoami, xargs,
 xz, xzcat, yes, zcat, zcip

click here for the command usage manual :)