Lpclinux
A. 如何將lcd驅動移植到linux內核中
本移植主要參考友善之臂移植手冊完成,做個筆記以備不時之需
Linux-2.6.32 內核LCD驅動移植
使用環境:fedora9
交叉編譯工具鏈:arm-linux-gcc-4.4.3
內核源碼來源:https://www.kernel.org/pub/linux/kernel/v2.6/
內核存放目錄:/opt/mymini2440/linux-2.6.32
一、LCD背光碟機動移植
在、opt/mymini2440/linux-2.6.32/drivers/video/目錄下添加背光碟機動程序mini2440_backlight.c,內容如下:
//以下頭文件可能並不是每一個都必須的,但多餘的並不會影響驅動程序的內容
#include <linux/errno.h>
#include <linux/kernel.h>
#include <linux/mole.h>
#include <linux/slab.h>
#include <linux/input.h>
#include <linux/init.h>
#include <linux/serio.h>
#include <linux/delay.h>
#include <linux/clk.h>
#include <linux/miscdevice.h>
#include <linux/gpio.h>
#include <asm/io.h>
#include <asm/irq.h>
#include <asm/uaccess.h>
#include <mach/regs-clock.h>
#include <plat/regs-timer.h>
#include <mach/regs-gpio.h>
#include <linux/cdev.h>
#undef DEBUG
//#define DEBUG
#ifdef DEBUG
#define DPRINTK(x...) {printk(__FUNCTION__"(%d): ",__LINE__);printk(##x);}
#else
#define DPRINTK(x...) (void)(0)
#endif
//定義背光碟機動的名稱為backligh,將會出現在/dev/backlight
#define DEVICE_NAME "backlight"
//定義背光變數bl_state,以記錄背光的開關狀態
static unsigned int bl_state;
//設置背光開關的函數,主要是翻轉背光變數bl_state
static inline void set_bl(int state)
{
bl_state = !!state; //翻轉bl_state 變數
s3c2410_gpio_setpin(S3C2410_GPG(4), bl_state); //把結果寫入背光所用的寄存器GPG4
}
//獲取背光狀態
static inline unsigned int get_bl(void)
{
return bl_state;
}
//從應用程序讀取參數,並傳遞到內核中
static ssize_t dev_write(struct file *file, const char *buffer, size_t count, loff_t * ppos)
{
unsigned char ch;
int ret;
if (count == 0) {
return count;
}
//使用_from_user 函數從用戶層/應用層讀取參數
ret = _from_user(&ch, buffer, sizeof ch) ? -EFAULT : 0;
if (ret) {
return ret;
}
ch &= 0x01; //判斷奇數還是偶數
set_bl(ch); //設置背光狀態
return count;
}
//把內核參數傳遞給用戶層/應用層的讀函數
static ssize_t dev_read(struct file *filp, char *buffer, size_t count, loff_t *ppos)
{
int ret;
unsigned char str[] = {'0', '1' };
if (count == 0) {
return 0;
}
//使用_to_user 函數把內核參數傳遞到用戶層/應用層
ret = _to_user(buffer, str + get_bl(), sizeof(unsigned char) ) ? -EFAULT : 0;
if (ret) {
return ret;
}
return sizeof(unsigned char);
}
//設備操作集
static struct file_operations dev_fops = {
owner: THIS_MODULE,
read:dev_read,
write: dev_write,
};
static struct miscdevice misc = {
.minor = MISC_DYNAMIC_MINOR,
.name = DEVICE_NAME,
.fops = &dev_fops,
};
//設備初始化,內核啟動時就有效
static int __init dev_init(void)
{
int ret;
ret = misc_register(&misc);
printk (DEVICE_NAME"\tinitialized\n");
//初始化背光所用的埠GPG4 為輸出
s3c2410_gpio_cfgpin(S3C2410_GPG(4), S3C2410_GPIO_OUTPUT);
//啟動內核時打開背光
set_bl(1);
return ret;
}
static void __exit dev_exit(void)
{
misc_deregister(&misc);
}
mole_init(dev_init); //注冊背光碟機動模塊
mole_exit(dev_exit); //卸載背光碟機動模塊
MODULE_LICENSE("GPL");
MODULE_AUTHOR("FriendlyARM Inc.");
在/opt/mymini2440/linux-2.6.32/drivers/video/目錄項的菜單文件Kconfig中添加LCD背光碟機動配置菜單如下:
config FB_S3C2410_DEBUG
bool "S3C2410 lcd debug messages"
depends on FB_S3C2410
help
Turn on debugging messages. Note that you can set/unset at run time
through sysfs
config BACKLIGHT_MINI2440
tristate "Backlight support for mini2440 from FriendlyARM"
depends on MACH_MINI2440 && FB_S3C2410
help
backlight driver for MINI2440 from FriendlyARM
config FB_SM501
tristate "Silicon Motion SM501 framebuffer support"
在/opt/mymini2440/linux-2.6.32/drivers/video/Makefile中添加背光碟機動目標文件
# the test framebuffer is last
obj-$(CONFIG_FB_VIRTUAL) += vfb.o
#video output switch sysfs driver
obj-$(CONFIG_VIDEO_OUTPUT_CONTROL) += output.o
obj-$(CONFIG_BACKLIGHT_MINI2440) += mini2440_backlight.o
配置內核:
Device Drivers ---> Graphics support ---> <*> Support for frame buffer devices
---> <*> Backlight support for mini2440 from FriendlyARM
背光碟機動移植完畢!
二、LCD驅動移植
在內核中添加各種LCD 類型的支持(我是X35的屏,也是我只需關注的部分,不過還是都添加了,X35有紅色標出)
刪除mach-mini2440.c原有代碼(本人115行-158行)
162
163 //LCD2VGA(解析度為1024x768)模塊的配置和參數設置
164 #elif defined(CONFIG_FB_S3C2410_VGA1024768)
165 #define LCD_WIDTH 1024
166 #define LCD_HEIGHT 768
167 #define LCD_PIXCLOCK 80000
168 #define LCD_RIGHT_MARGIN 15
169 #define LCD_LEFT_MARGIN 199
170 #define LCD_HSYNC_LEN 15
171 #define LCD_UPPER_MARGIN 1
172 #define LCD_LOWER_MARGIN 1
173 #define LCD_VSYNC_LEN 1
174 #define LCD_CON5 (S3C2410_LCDCON5_FRM565 | S3C2410_LCDCON5_HWSWP)
175
176 #elif defined(CONFIG_FB_S3C2410_X240320)
177 #define LCD_WIDTH 240
178 #define LCD_HEIGHT 320
179 #define LCD_PIXCLOCK 170000
180 #define LCD_RIGHT_MARGIN 25
181 #define LCD_LEFT_MARGIN 0
182 #define LCD_HSYNC_LEN 4
183 #define LCD_UPPER_MARGIN 0
184 #define LCD_LOWER_MARGIN 4
185 #define LCD_VSYNC_LEN 9
186 #define LCD_CON5 (S3C2410_LCDCON5_FRM565 | S3C2410_LCDCON5_INVVDEN | S3C2410_LCDCON5_INVVFRAME | S3C2410_LCDCON5_INVVLINE | S3C2410_LCDCON5_INVVCLK | S3C2410_LCDCON5_HWSWP )
187 #endif
188
189 #if defined (LCD_WIDTH)
190
191 static struct s3c2410fb_display mini2440_lcd_cfg __initdata = {
192 #if !defined (LCD_CON5)
193 .lcdcon5 = S3C2410_LCDCON5_FRM565 |
194 S3C2410_LCDCON5_INVVLINE |
195 S3C2410_LCDCON5_INVVFRAME |
196 S3C2410_LCDCON5_PWREN |
197 S3C2410_LCDCON5_HWSWP,
198 #else
199 .lcdcon5 = LCD_CON5,
200 #endif
201 .type = S3C2410_LCDCON1_TFT,
202 .width = LCD_WIDTH,
203 .height = LCD_HEIGHT,
204 .pixclock = LCD_PIXCLOCK,
205 .xres = LCD_WIDTH,
206 .yres = LCD_HEIGHT,
207 .bpp = 16,
208 .left_margin = LCD_LEFT_MARGIN + 1,
209 .right_margin = LCD_RIGHT_MARGIN + 1,
210 .hsync_len = LCD_HSYNC_LEN + 1,
211 .upper_margin = LCD_UPPER_MARGIN + 1,
212 .lower_margin = LCD_LOWER_MARGIN + 1,
213 .vsync_len = LCD_VSYNC_LEN + 1,
214 };
215
216 static struct s3c2410fb_mach_info mini2440_fb_info __initdata = {
217 .displays = &mini2440_lcd_cfg,
218 .num_displays = 1,
219 .default_display = 0,
220 .gpccon = 0xaa955699,
221 .gpccon_mask = 0xffc003cc,
222 .gpcup = 0x0000ffff,
223 .gpcup_mask = 0xffffffff,
224 .gpdcon = 0xaa95aaa1,
225 .gpdcon_mask = 0xffc0fff0,
226 .gpp = 0x0000faff,
227 .gpp_mask = 0xffffffff,
228 .lpcsel = 0xf82,
229 };
230
231 #endif
232
然後打開drivers/video/Kconfig,在大概1935 行加入以下配置信息:
1923 config FB_S3C2410_DEBUG
1924 bool "S3C2410 lcd debug messages"
1925 depends on FB_S3C2410
1926 help
1927 Turn on debugging messages. Note that you can set/unset at run time
1928 through sysfs
1929
1930 choice
1931 prompt "LCD select"
1932 depends on FB_S3C2410
1933 help
1934 S3C24x0 LCD size select
1935
1936 config FB_S3C2410_T240320
1937 boolean "3.5 inch 240X320 Toppoly LCD"
1938 depends on FB_S3C2410
1939 help
1940 3.5 inch 240X320 Toppoly LCD
1941
1942 config FB_S3C2410_N240320
1943 boolean "3.5 inch 240X320 NEC LCD"
1944 depends on FB_S3C2410
1945 help
1946 3.5 inch 240x320 NEC LCD
1947
1948 config FB_S3C2410_TFT640480
1949 boolean "8 inch 640X480 L80 LCD"
1950 depends on FB_S3C2410
1951 help
1952 8 inch 640X480 LCD
1953
1954 config FB_S3C2410_TFT800480
1955 boolean "7 inch 800x480 TFT LCD"
1956 depends on FB_S3C2410
1957 help
1958 7 inch 800x480 TFT LCD
1959
1960 config FB_S3C2410_VGA1024768
1961 boolean "VGA 1024x768"
1962 depends on FB_S3C2410
1963 help
1964 VGA 1024x768
1965
1966 config FB_S3C2410_X240320
1967 boolean "3.5 inch 240X320 LCD(ACX502BMU)"
1968 depends on FB_S3C2410
1969 help
1970 3.5 inch 240X320 LCD(ACX502BMU)
1971
1972 endchoice
1973
1974 config BACKLIGHT_MINI2440
配置內核
Device Drivers ---> Graphics support ---> <*> Support for frame buffer devices ---> LCD select (3.5 inch 240X320 LCD(ACX502BMU)) ---> (X) 3.5 inch 240X320 LCD(ACX502BMU)
LCD驅動移植完成!!!
三、開機logo和開機信息顯示
Device Drivers ---> Graphics support ---> <*> Support for frame buffer devices ---> [*] Bootup logo ---> [*] Standard 16-color Linux logo (本人的24位死活不能顯示,先改成16位吧)
在文件系統rootfs/etc/inittab下作如下修改(為了在LCD上顯示列印信息):
1 ::sysinit:/etc/init.d/rcS
2 tty1::askfirst:-/bin/sh //添加
3 s3c2410_serial0::askfirst:-/bin/sh
4 ::ctrlaltdel:/sbin/reboot
5 ::shutdown:/bin/umount -a -r
6
四,編譯測試
#make zImage
#cd arch/arm/boot/
#mkimage -n 'mini2440_linux' -A arm -O linux -T kernel -C none -a 0x31000000 -e 0x31000040 -d zImage uImage
#chmod a+x uImage
#cp uImage /tftp/boot
設置U-BOOT參數如下:
B. lpc2114能否移植Linux操作系統
可以移植UCLINUX,因為ARM7沒有MMU。聽說最新版本的LINUX也能支持無MMU的晶元,但是只是聽說沒有證實。
C. lpc1114怎樣安裝Linux
沒有,燒得挺順的。JLINK我設置SW 10MHZ 2010年11月27日補充如下:嗚哇哇。。。我也碰上了。我認為原因是我開啟了全部ADC,ADC0~3剛好是JTAG所需管,tAAubA
D. 如何在linux中安裝WINDOWS共享列印機
方法:
(1)正確安裝和配置Samba伺服器。
(2)將運行Windows9x/2000上的列印機設置為共享。
(3)在Linux系統的/etc/printcap中為網路列印機建立一個新的隊列,如下:
smb: \
:sd=/var/spool/lpd/smb: \
:mx # 0: \
:sh: \
:lp=/dev/null: \
:af=/var/spool/lpd/smb/acct: \
:if=/var/spool/lpd/smb/filter:
將Samba軟體包提供的smbprint拷貝到Samba安裝目錄/bin子目錄里並設置成可執行模式。
(4)在/var/spool/lpd/smb/目錄下,創建列印過濾器文件filter。
# ! /bin/sh
DEVICE=「列印機型號名稱(如:LJET4)」
RESOLUTION=600*600
PAPERSIZE=「列印紙型號(如:A4)」
SENDEOF=
nenscript -TUS -ZB -p-|
if [" $ DEVICE"="PostScript"]; then
cat - | /usr/local/samba/bin/smbprint –
else
gs -q -s DEVICE=$DEVICE \
-r $RESOLUTION \
-s PAPERSIZE=$PAPERSIZE \
-d NOPAUSE \
-d SAFER \
-s Outputfile=-- | /usr/local/samba/bin/smbprint –
fi
if ["$ SENDEOF"!=""]; then
printf""
fi
exit 0
以上smbprint運行時需要一個.config的列印信息文件,這個文件在printcap定義的/var/spool/lpd/smb目錄下建立,如下:
server=「列印伺服器名稱(如:SISKIN)」
service=「列印機型號名稱(如:LJET4)」
password=「網路列印機共享名及口令」
(5)重新啟動列印管理器
# lpc restart all
(6) 列印
% lpr –P smb 文件名
E. Linux操作系統,telnet的時候如何能讓printk列印到前台。
redhat linux的命令
一. 啟動,關機,登入,登出相關命令
login 登錄
logout 登出
exit 登出
shutdown 停止系統
halt 停止系統
reboot 重啟動
poweroff 切斷電源
sync 把內存里的內容寫入磁碟
lilo 安裝lilo啟動管理程序
grub 安裝lilo啟動管理程序
二. Shell相關命令
chsh 切換Shell
history 顯示命令履歷
alias 設置命令別名
unalias 取消命令別名
which 顯示命令所在位置
type 查詢命令種類
echo 顯示字元串或者變數內容
set 設置/顯示Shell變數
printenv 顯示環境變數
export 設置環境變數
env 設置臨時環境變數
unset 釋放環境變數
setenv 設置環境變數
unsetenv 釋放環境變數
source 執行文件當中的命令
man 查詢命令手冊
info 查詢超文本命令手冊
whatis 顯示命令簡介
apropos 通過關鍵字查詢手冊
三. 用戶管理相關命令
su 切換到其他用戶
useradd 追加用戶
adser 追加用戶
userdel 刪除用戶
usermod 修改用戶設置
chfn 修改用戶私人信息
groupadd 追加組
groupdel 刪除組
groupmod 修改組設置
passwd 更改密碼
whoami 顯示用戶名
logname 顯示登錄用戶帳號
users 顯示所有登錄用戶信息
who 查詢登錄用戶信息
w 查詢登錄用戶信息
id 顯示指定用戶的ID信息
groups 顯示指定用戶的所屬組
finger 顯示指定用戶的個人信息
mesg 開關與他人收發消息
write 給其他用戶發消息
wall 給所有用戶發消息
talk 和其他用戶聊天
四. 系統消息相關命令
date 顯示/設置當前時間
uptime 顯示系統運行時間
arch 顯示機器的核心構架(如i386)
uname 顯示操作系統信息
tty 顯示終端名
last 顯示登錄/登出在履歷
lastb 顯示非法登錄信息
mpkeys 顯示當前鍵盤配置
loadkeys 變更鍵盤配置
df 查詢磁碟使用信息
查詢磁碟使用信息
dmesg 顯示系統啟動消息
script 保存輸入輸出到文件
五. 文件操作相關命令
ls 顯示文件列表
tree 顯示目錄樹
pwd 顯示當前路徑
cd 更改當前路徑
pushd 追加路徑到目錄堆棧
popd 從目錄堆棧刪除路徑
dirs 顯示目錄堆棧的內容
mkdir 創建路徑
rmdir 刪除路徑
cp 復制文件/目錄
rm 刪除文件/目錄
mv 移動文件/目錄,修改文件名
chown 更改文件/目錄的所有者
chgrp 修改文件/目錄的所有組
chmod 修改文件/目錄的許可權
touch 更改文件時間
ln 建立文件/目錄鏈接
find 查找文件
whereis 顯示文件存在的路徑名
file 查詢文件種類
size 查詢文件大小
六. 文件編輯相關命令
cat 顯示文件內容
tee 輸出到文件和屏幕
more 分屏顯示文件內容
less 分屏顯示文件內容
head 顯示文件頭部內容
tail 顯示文件尾部內容
fold 折疊顯示長行
sort 排列文件的行
cmp 比較文件內容
diff 顯示文件差異
nkf 更改日語文件編碼
dd 變更文件之後復制
wc 統計文本單詞數,文件大小等
split 分割文件
paste 以行連接文件
join 以欄位連接文件
grep 查詢文字
uniq 過濾重復部分顯示文件內容
tr 替換文字
sed 替換文字
七. 壓縮/解壓縮相關命令
ar 壓縮/解壓縮文件
tar 壓縮/解壓縮文件
compress 壓縮/解壓縮文件
uncompress 解壓縮
gzip 壓縮/解壓縮文件
gunzip 解壓縮
zcat 顯示壓縮文件的內容
lha 壓縮/解壓縮文件
uuencode 把二進制文件編碼為文本文件
uudecode 把經過編碼的文本文件還原為二進制文件
八. MS-DOS工具集[mtools]命令
mdir 顯示文件列表
mcd 改變當前目錄
mmd 新建目錄
mrd 刪除目錄
mdeltree 刪除目錄樹
m 復制文件
mdel 刪除文件
mmove 移動文件
mren 更改文件或目錄名
mattrib 修改文件屬性
mtype 顯示文件內容
m 查詢文件或目錄大小
minfo 顯示磁碟信息
mformat 以MS-DOS方式格式化磁碟
mlabel 設置磁碟標簽
九. 控制外部設備相關命令
mount mount上設備
umount 解除已經mount上的設備
eject 彈出(CD/DVD等)
fdformat 格式化軟盤
fdisk 配置/顯示硬碟分區
mkfs 格式化磁碟分區
fsck 檢查/修復磁碟錯誤
lpr 列印到列印機
lprm 中斷列印任務
lpq 顯示列印任務的狀態
lpc 管理/控制列印任務
ifconfig 顯示/設定NIC配置
十. 進程及任務管理相關命令
ps 顯示正在運行的進程
jobs 顯示後台運行任務
fg 把任務切換到前台
bg 把任務切換到後台
kill 中止進程或任務
killall 中止進程或任務
wait 等待進程或任務的結束
at 設置定時執行任務
atq 顯示尚未執行的任務
atrm 刪除定時執行任務
batch 在系統負荷減輕的時候執行任務
nice 改變優先度並執行任務
nohup 在後台執行任務,Logout之後也不退出
sleep 休眠一定的時間
十一. 網路管理相關命令
netstat 顯示當前網路連接狀況
route 顯示/設置路由
host 顯示網路主機情況
hostname 顯示/設置當前主機的名字
ping 確認和遠程機器的連接情況
traceroute 顯示路由信息
rwho 查詢網上機器的登陸用戶
ruptime 查詢網上機器的系統運行時間
rlogin 登陸到遠程機器
telnet 用telnet登陸到遠程機器
rsh 給遠程機器發送命令
rcp 在遠程機器之間復制文件
mail 收取郵件
sendmail 發送郵件
mailq 確認郵件隊列
ftp 用ftp傳輸文件
十二. 其他命令
cal 顯示日歷
clear 清屏
gcc 編譯C語言代碼
as 匯編
bc 計算
rpm Redhat的包管理
dpkg Debian的包管理
installpkg Slackware的包安裝(刪除命令則是removepkg)
XF86Setup,turboxfg,Xconfigurator 配置 X 伺服器
startx 啟動 X-Window 系統
附:組合命令
重定向,如
$ ls -l /bin ls-output
$ more ls-output
管道命令,如
$ cat file1 file2 | sort | uniq
經常被用於管道的命令
awk, fold, grep, head, nnkf, pr, sed, sort, tail, tee, tr, uniq, wc
很多了
F. Linux系統中的redhat的常用輸入命令有哪些
redhat linux的命令
一. 啟動,關機,登入,登出相關命令
<login> 登錄
<logout> 登出
<exit> 登出
<shutdown> 停止系統
<halt> 停止系統
<reboot> 重啟動
<poweroff> 切斷電源
<sync> 把內存里的內容寫入磁碟
<lilo> 安裝lilo啟動管理程序
<grub> 安裝lilo啟動管理程序
二. Shell相關命令
<chsh> 切換Shell
<history> 顯示命令履歷
<alias> 設置命令別名
<unalias> 取消命令別名
<which> 顯示命令所在位置
<type> 查詢命令種類
<echo> 顯示字元串或者變數內容
<set> 設置/顯示Shell變數
<printenv> 顯示環境變數
<export> 設置環境變數
<env> 設置臨時環境變數
<unset> 釋放環境變數
<setenv> 設置環境變數
<unsetenv> 釋放環境變數
<source> 執行文件當中的命令
<man> 查詢命令手冊
<info> 查詢超文本命令手冊
<whatis> 顯示命令簡介
<apropos> 通過關鍵字查詢手冊
三. 用戶管理相關命令
<su> 切換到其他用戶
<useradd> 追加用戶
<adser> 追加用戶
<userdel> 刪除用戶
<usermod> 修改用戶設置
<chfn> 修改用戶私人信息
<groupadd> 追加組
<groupdel> 刪除組
<groupmod> 修改組設置
<passwd> 更改密碼
<whoami> 顯示用戶名
<logname> 顯示登錄用戶帳號
<users> 顯示所有登錄用戶信息
<who> 查詢登錄用戶信息
<w> 查詢登錄用戶信息
<id> 顯示指定用戶的ID信息
<groups> 顯示指定用戶的所屬組
<finger> 顯示指定用戶的個人信息
<mesg> 開關與他人收發消息
<write> 給其他用戶發消息
<wall> 給所有用戶發消息
<talk> 和其他用戶聊天
四. 系統消息相關命令
<date> 顯示/設置當前時間
<uptime> 顯示系統運行時間
<arch> 顯示機器的核心構架(如i386)
<uname> 顯示操作系統信息
<tty> 顯示終端名
<last> 顯示登錄/登出在履歷
<lastb> 顯示非法登錄信息
<mpkeys> 顯示當前鍵盤配置
<loadkeys> 變更鍵盤配置
<df> 查詢磁碟使用信息
<> 查詢磁碟使用信息
<dmesg> 顯示系統啟動消息
<script> 保存輸入輸出到文件
五. 文件操作相關命令
<ls> 顯示文件列表
<tree> 顯示目錄樹
<pwd> 顯示當前路徑
<cd> 更改當前路徑
<pushd> 追加路徑到目錄堆棧
<popd> 從目錄堆棧刪除路徑
<dirs> 顯示目錄堆棧的內容
<mkdir> 創建路徑
<rmdir> 刪除路徑
<cp> 復制文件/目錄
<rm> 刪除文件/目錄
<mv> 移動文件/目錄,修改文件名
<chown> 更改文件/目錄的所有者
<chgrp> 修改文件/目錄的所有組
<chmod> 修改文件/目錄的許可權
<touch> 更改文件時間
<ln> 建立文件/目錄鏈接
<find> 查找文件
<whereis> 顯示文件存在的路徑名
<file> 查詢文件種類
<size> 查詢文件大小
六. 文件編輯相關命令
<cat> 顯示文件內容
<tee> 輸出到文件和屏幕
<more> 分屏顯示文件內容
<less> 分屏顯示文件內容
<head> 顯示文件頭部內容
<tail> 顯示文件尾部內容
<fold> 折疊顯示長行
<sort> 排列文件的行
<cmp> 比較文件內容
<diff> 顯示文件差異
<nkf> 更改日語文件編碼
<dd> 變更文件之後復制
<wc> 統計文本單詞數,文件大小等
<split> 分割文件
<paste> 以行連接文件
<join> 以欄位連接文件
<grep> 查詢文字
<uniq> 過濾重復部分顯示文件內容
<tr> 替換文字
<sed> 替換文字
七. 壓縮/解壓縮相關命令
<ar> 壓縮/解壓縮文件
<tar> 壓縮/解壓縮文件
<compress> 壓縮/解壓縮文件
<uncompress> 解壓縮
<gzip> 壓縮/解壓縮文件
<gunzip> 解壓縮
<zcat> 顯示壓縮文件的內容
<lha> 壓縮/解壓縮文件
<uuencode> 把二進制文件編碼為文本文件
<uudecode> 把經過編碼的文本文件還原為二進制文件
八. MS-DOS工具集[mtools]命令
<mdir> 顯示文件列表
<mcd> 改變當前目錄
<mmd> 新建目錄
<mrd> 刪除目錄
<mdeltree> 刪除目錄樹
<m> 復制文件
<mdel> 刪除文件
<mmove> 移動文件
<mren> 更改文件或目錄名
<mattrib> 修改文件屬性
<mtype> 顯示文件內容
<m> 查詢文件或目錄大小
<minfo> 顯示磁碟信息
<mformat> 以MS-DOS方式格式化磁碟
<mlabel> 設置磁碟標簽
九. 控制外部設備相關命令
<mount> mount上設備
<umount> 解除已經mount上的設備
<eject> 彈出(CD/DVD等)
<fdformat> 格式化軟盤
<fdisk> 配置/顯示硬碟分區
<mkfs> 格式化磁碟分區
<fsck> 檢查/修復磁碟錯誤
<lpr> 列印到列印機
<lprm> 中斷列印任務
<lpq> 顯示列印任務的狀態
<lpc> 管理/控制列印任務
<ifconfig> 顯示/設定NIC配置
十. 進程及任務管理相關命令
<ps> 顯示正在運行的進程
<jobs> 顯示後台運行任務
<fg> 把任務切換到前台
<bg> 把任務切換到後台
<kill> 中止進程或任務
<killall> 中止進程或任務
<wait> 等待進程或任務的結束
<at> 設置定時執行任務
<atq> 顯示尚未執行的任務
<atrm> 刪除定時執行任務
<batch> 在系統負荷減輕的時候執行任務
<nice> 改變優先度並執行任務
<nohup> 在後台執行任務,Logout之後也不退出
<sleep> 休眠一定的時間
十一. 網路管理相關命令
<netstat> 顯示當前網路連接狀況
<route> 顯示/設置路由
<host> 顯示網路主機情況
<hostname> 顯示/設置當前主機的名字
<ping> 確認和遠程機器的連接情況
<traceroute> 顯示路由信息
<rwho> 查詢網上機器的登陸用戶
<ruptime> 查詢網上機器的系統運行時間
<rlogin> 登陸到遠程機器
<telnet> 用telnet登陸到遠程機器
<rsh> 給遠程機器發送命令
<rcp> 在遠程機器之間復制文件
<mail> 收取郵件
<sendmail> 發送郵件
<mailq> 確認郵件隊列
<ftp> 用ftp傳輸文件
十二. 其他命令
<cal> 顯示日歷
<clear> 清屏
<gcc> 編譯C語言代碼
<as> 匯編
<bc> 計算
<rpm> Redhat的包管理
<dpkg> Debian的包管理
<installpkg> Slackware的包安裝(刪除命令則是removepkg)
<XF86Setup,turboxfg,Xconfigurator> 配置 X 伺服器
<startx> 啟動 X-Window 系統
附:組合命令
重定向,如
$ ls -l /bin > ls-output
$ more ls-output
管道命令,如
$ cat file1 file2 | sort | uniq
經常被用於管道的命令
awk, fold, grep, head, nnkf, pr, sed, sort, tail, tee, tr, uniq, wc
很多了
G. 如何查看linux伺服器的cpu數量,內核數,和cpu線程數
lscpu命令,查看的是cpu的統計信息.
blue@blue-pc:~$ lscpu
Architecture: i686 #cpu架構
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian #小尾序
CPU(s): 4 #總共有4核
On-line CPU(s) list: 0-3
Thread(s) per core: 1 #每個cpu核,只能支持一個線程,即不支持超線程
Core(s) per socket: 4 #每個cpu,有4個核
Socket(s): 1 #總共有1一個cpu
Vendor ID: GenuineIntel #cpu產商 intel
CPU family: 6
Model: 42
Stepping: 7
CPU MHz: 1600.000
BogoMIPS: 5986.12
Virtualization: VT-x #支持cpu虛擬化技術
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 6144K
查看/proc/cpuinfo,可以知道每個cpu信息,如每個CPU的型號,主頻等。
#cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 42
model name : Intel(R) Core(TM) i5-2320 CPU @ 3.00GHz
.....
上面輸出的是第一個cpu部分信息,還有3個cpu信息省略了。
內存
概要查看內存情況
free -m
total used free shared buffers cached
Mem: 3926 3651 274 0 12 404
-/+ buffers/cache: 3235 691
Swap: 9536 31 9505
這里的單位是MB,總共的內存是3926MB。
查看內存詳細使用
# cat /proc/meminfo
MemTotal: 4020868 kB
MemFree: 230884 kB
Buffers: 7600 kB
Cached: 454772 kB
SwapCached: 836 kB
.....
查看內存硬體信息
dmidecode -t memory
# dmidecode 2.11
SMBIOS 2.7 present.
Handle 0x0008, DMI type 16, 23 bytes
Physical Memory Array
Location: System Board Or Motherboard
....
Maximum Capacity: 32 GB
....
Handle 0x000A, DMI type 17, 34 bytes
....
Memory Device
Array Handle: 0x0008
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
Size: 4096 MB
.....
我的主板有4個槽位,只用了一個槽位,上面插了一條4096MB的內存。
磁碟
查看硬碟和分區分布
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 465.8G 0 disk
├—sda1 8:1 0 1G 0 part /boot
├—sda2 8:2 0 9.3G 0 part [SWAP]
├—sda3 8:3 0 74.5G 0 part /
├—sda4 8:4 0 1K 0 part
├—sda5 8:5 0 111.8G 0 part /home
└—sda6 8:6 0 269.2G 0 part
顯示很直觀
如果要看硬碟和分區的詳細信息
# fdisk -l
Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00023728
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 2148351 1073152 83 Linux
/dev/sda2 2148352 21680127 9765888 82 Linux swap / Solaris
/dev/sda3 21680128 177930239 78125056 83 Linux
/dev/sda4 177932286 976771071 399419393 5 Extended/dev/sda5 177932288 412305407 117186560 83 Linux
/dev/sda6 412307456 976771071 282231808 83 Linux
網卡
查看網卡硬體信息
# lspci | grep -i 'eth'
02:00.0 Ethernet controller: Realtek Semiconctor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 06)
查看系統的所有網路介面
# ifconfig -a
eth0 Link encap:乙太網 硬體地址 b8:97:5a:17:b3:8f
.....
lo Link encap:本地環回
.....
或者是
ip link show
1: lo: <LOOPBACK> mtu 16436 qdisc noqueue state DOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether b8:97:5a:17:b3:8f brd ff:ff:ff:ff:ff:ff
如果要查看某個網路介面的詳細信息,例如eth0的詳細參數和指標
# ethtool eth0
Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full #支持千兆半雙工,全雙工模式
Supported pause frame use: No
Supports auto-negotiation: Yes #支持自適應模式,一般都支持
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: Yes #默認使用自適應模式
Link partner advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
.....
Speed: 100Mb/s #現在網卡的速度是100Mb,網卡使用自適應模式,所以推測路由是100Mb,導致網卡從支 持千兆,變成要支持百兆
Duplex: Full #全雙工
.....
Link detected: yes #表示有網線連接,和路由是通的
其他
查看pci信息,即主板所有硬體槽信息。
lspci
00:00.0 Host bridge: Intel Corporation 2nd Generation Core Processor Family DRAM Controller (rev 09) #主板晶元
00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09) #顯卡
00:14.0 USB controller: Intel Corporation Panther Point USB xHCI Host Controller (rev 04) #usb控制器
00:16.0 Communication controller: Intel Corporation Panther Point MEI Controller #1 (rev 04)
00:1a.0 USB controller: Intel Corporation Panther Point USB Enhanced Host Controller #2 (rev 04)
00:1b.0 Audio device: Intel Corporation Panther Point High Definition Audio Controller (rev 04) #音效卡
00:1c.0 PCI bridge: Intel Corporation Panther Point PCI Express Root Port 1 (rev c4) #pci 插槽
00:1c.2 PCI bridge: Intel Corporation Panther Point PCI Express Root Port 3 (rev c4)
00:1c.3 PCI bridge: Intel Corporation Panther Point PCI Express Root Port 4 (rev c4)
00:1d.0 USB controller: Intel Corporation Panther Point USB Enhanced Host Controller #1 (rev 04)
00:1f.0 ISA bridge: Intel Corporation Panther Point LPC Controller (rev 04)
00:1f.2 IDE interface: Intel Corporation Panther Point 4 port SATA Controller [IDE mode] (rev 04) #硬碟介面
00:1f.3 SMBus: Intel Corporation Panther Point SMBus Controller (rev 04)
00:1f.5 IDE interface: Intel Corporation Panther Point 2 port SATA Controller [IDE mode] (rev 04) #硬碟介面
02:00.0 Ethernet controller: Realtek Semiconctor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 06) #網卡
03:00.0 PCI bridge: Integrated Technology Express, Inc. Device 8893 (rev 41)
如果要更詳細的信息:lspci -v 或者 lspci -vv
如果要看設備樹:lscpi -t
查看bios信息
# dmidecode -t bios
......
BIOS Information
Vendor: American Megatrends Inc.
Version: 4.6.5
Release Date: 04/25/2012
.......
BIOS Revision: 4.6
......
dmidecode以一種可讀的方式mp出機器的DMI(Desktop Management Interface)信息。這些信息包括了硬體以及BIOS,既可以得到當前的配置,也可以得到系統支持的最大配置,比如說支持的最大內存數等。
如果要查看所有有用信息
dmidecode -q
以上是linux查看硬體信息的所有命令,可以查看CPU、硬碟、網卡、磁碟等硬體的信息。
H. linux和solaris的區別
Linux和Solaris都是unix-like系統,他們有很多共同之處,區別也有很多,下面從是個方面介紹他們的區別:
區別1:默認shell
兩個操作系統的默認shell雖然都是/bin/sh,
但linux默認shell是bash,/bin/sh僅是一個指向到/bin/bash的符號鏈接。 而solaris的默認shell是Bourne shell,名為/bin/sh。
區別2:文件系統
標準的solaris文件系統格式是UFS,還可以使用VxFS,QFS,從Solaris 10 u2版開始,還可以使用ZFS。 Linux通常使用ext3 or ext2,reiser,JFS,XFS其中一種。
區別3:文件系統目錄布局 最值得注意的是/proc目錄。
Linux的/proc目錄存放與系統配置以及進程有關的信息,可以修改這些文件以更新內核變數和進程信息。
而Solaris的/proc目錄僅包含進程信息,不能從/proc目錄獲取系統信息或調整內核變數,但Solaris使用/platform目錄,這個目錄包含平台特定的信息和應用,Linux沒有與Solaris的/platform對應的目錄。
區別4:命令
為了保持對System V,BSD,GNU軟體的兼容性,除了常規的/bin(/usr/bin)和/sbin(/usr/sbin)目錄外,Solaris還使用了一些擴展的命令目錄,這些目錄如下所示: /usr/openwin /bin/usr/dt/bin /usr/sfw/bin /opt/sfw/bin /usr/xpg4/bin /usr/ccs/bin /usr/ucb
其中:
/usr/bin 標準的System V命令 /usr/ucb 傳統的BSD命令
有些命令在這兩個目錄中都有,但用法可能不同,比如 basename df echo expr fastboot fasthalt file from groups install ld lint ln lpc lpq lpr lprm lptest ls mkstr printenv ps rusage sed shutdown stty sum test touch tr tset users vipw whereis whoami
免費軟體的部署Linux和Solaris相同,這些GNU的命令在Solaris中通常都以g字母開頭,比如gtar。 System V和BSD中有兩個目錄包含免費軟體:/usr/sfw/bin和/opt/sfw/bin。前者包含從安裝介質中安裝的免費軟體,後者則是從配套CD中安裝的軟體。
隨著Solaris版本的更新,有可能會把配套CD上的軟體放入Solaris安裝介質中,因此需要注意在舊版本上的/opt/sfw/bin目錄中的命令可能會被移植到/usr/sfw/bin中。凡是在/usr/sfw/bin中的軟體,表示能夠通過Sun的標准支持通道獲得完全技術支持,而/opt /sfw/bin中的軟體則通常是由開源軟體組織獲得技術支持。
區別5:網路配置文件
Linux Solaris
/etc/ntp.conf /etc/inet/ntp.conf
/etc/[x]inetd.conf /etc/inet/inetd.conf
/etc/sysconfig/network-scripts/ifcfg-{interface} /etc/hostname.{interface} and /etc/inet/netmasks
/etc/sysconfig/network /etc/nodename and /etc/defaultrouter
/etc/networks /etc/networks -> /etc/inet/networks (鏈接到)
區別6:文件系統配置文件
Linux Solaris
/etc/fstab /etc/vfstab
/etc/exports /etc/dfs/dfstab (format is different)
/etc/auto.master /etc/auto_master
/etc/auto.home /etc/auto_home
區別7:mail
Linux Solaris
/etc/aliases /etc/mail/aliases
/etc/mail.rc /etc/mail/Mail.rc /etc/mail/mailx.rc
區別8:日誌文件
在Linux系統中,日誌文件的主目錄為/var/log,各種系統守護進程的日誌文件均存在此處。
Solaris稍有不同,/var/log目錄存放syslog和authlog的日誌文件,而/var/adm目錄則存放消息日誌文件,在預設配置時,solaris的/var/adm/messages文件(redhat對應的文件為/var/log/messages)包含所有的日誌記錄(可通過修改syslog.conf文件為不同的日誌指定不同的消息記錄文件)。
區別9:腳本移植
如果要把腳本從Linux移植到Solaris,需要注意以下幾點: 首先確定腳本中所使用的所有文件和路徑在Solaris中均有效 確定所有的選項和參數是否有變化 命令的執行輸出是否有區別
區別10:查看幫助信息
man的差異:
Linux Solaris
# whatis printf $ whatis printf
# man 3 printf $ man -s 3c printf /etc/mail.rc
Linux特有的幫助:
Linux還可以使用info查看幫助,info中帶有簡單的菜單式鏈接。按回車進入菜單所鏈接的章節,按q退出。
最後,Linux在/usr/share/doc/目錄中還提供了一些其他格式(pdf、html等)的幫助資源。每個子目錄對應一個應用,存放和應用相關的配置、設置等幫助資料。比如/usr/share/doc/bind*,存放和DNS伺服器應用軟體bind有關的幫助信息。
I. windows lpc機制和linux lpc機制的區別
當然用交叉編譯工具了。arm-linux-gcc,本人比較懶,你可以上網搜索,很多的。 編譯uboot推薦3.3.1版本,編譯內核推薦4.4.3版本。是不同的版本,一定記得哈
J. redhat中linux從圖形界面進入字元界面的快捷鍵是什麼
Redhat linux常用的命令:
一. 啟動,關機,登入,登出相關命令
<login> 登錄
<logout> 登出
<exit> 登出
<shutdown> 停止系統
<halt> 停止系統
<reboot> 重啟動
<poweroff> 切斷電源
<sync> 把內存里的內容寫入磁碟
<lilo> 安裝lilo啟動管理程序
<grub> 安裝lilo啟動管理程序
二. Shell相關命令
<chsh> 切換Shell
<history> 顯示命令履歷
<alias> 設置命令別名
<unalias> 取消命令別名
<which> 顯示命令所在位置
<type> 查詢命令種類
<echo> 顯示字元串或者變數內容
<set> 設置/顯示Shell變數
<printenv> 顯示環境變數
<export> 設置環境變數
<env> 設置臨時環境變數
<unset> 釋放環境變數
<setenv> 設置環境變數
<unsetenv> 釋放環境變數
<source> 執行文件當中的命令
<man> 查詢命令手冊
<info> 查詢超文本命令手冊
<whatis> 顯示命令簡介
<apropos> 通過關鍵字查詢手冊
三. 用戶管理相關命令
<su> 切換到其他用戶
<useradd> 追加用戶
<adser> 追加用戶
<userdel> 刪除用戶
<usermod> 修改用戶設置
<chfn> 修改用戶私人信息
<groupadd> 追加組
<groupdel> 刪除組
<groupmod> 修改組設置
<passwd> 更改密碼
<whoami> 顯示用戶名
<logname> 顯示登錄用戶帳號
<users> 顯示所有登錄用戶信息
<who> 查詢登錄用戶信息
<w> 查詢登錄用戶信息
<id> 顯示指定用戶的ID信息
<groups> 顯示指定用戶的所屬組
<finger> 顯示指定用戶的個人信息
<mesg> 開關與他人收發消息
<write> 給其他用戶發消息
<wall> 給所有用戶發消息
<talk> 和其他用戶聊天
四. 系統消息相關命令
<date> 顯示/設置當前時間
<uptime> 顯示系統運行時間
<arch> 顯示機器的核心構架(如i386)
<uname> 顯示操作系統信息
<tty> 顯示終端名
<last> 顯示登錄/登出在履歷
<lastb> 顯示非法登錄信息
<mpkeys> 顯示當前鍵盤配置
<loadkeys> 變更鍵盤配置
<df> 查詢磁碟使用信息
<> 查詢磁碟使用信息
<dmesg> 顯示系統啟動消息
<script> 保存輸入輸出到文件
五. 文件操作相關命令
<ls> 顯示文件列表
<tree> 顯示目錄樹
<pwd> 顯示當前路徑
<cd> 更改當前路徑
<pushd> 追加路徑到目錄堆棧
<popd> 從目錄堆棧刪除路徑
<dirs> 顯示目錄堆棧的內容
<mkdir> 創建路徑
<rmdir> 刪除路徑
<cp> 復制文件/目錄
<rm> 刪除文件/目錄
<mv> 移動文件/目錄,修改文件名
<chown> 更改文件/目錄的所有者
<chgrp> 修改文件/目錄的所有組
<chmod> 修改文件/目錄的許可權
<touch> 更改文件時間
<ln> 建立文件/目錄鏈接
<find> 查找文件
<whereis> 顯示文件存在的路徑名
<file> 查詢文件種類
<size> 查詢文件大小
六. 文件編輯相關命令
<cat> 顯示文件內容
<tee> 輸出到文件和屏幕
<more> 分屏顯示文件內容
<less> 分屏顯示文件內容
<head> 顯示文件頭部內容
<tail> 顯示文件尾部內容
<fold> 折疊顯示長行
<sort> 排列文件的行
<cmp> 比較文件內容
<diff> 顯示文件差異
<nkf> 更改日語文件編碼
<dd> 變更文件之後復制
<wc> 統計文本單詞數,文件大小等
<split> 分割文件
<paste> 以行連接文件
<join> 以欄位連接文件
<grep> 查詢文字
<uniq> 過濾重復部分顯示文件內容
<tr> 替換文字
<sed> 替換文字
七. 壓縮/解壓縮相關命令
<ar> 壓縮/解壓縮文件
<tar> 壓縮/解壓縮文件
<compress> 壓縮/解壓縮文件
<uncompress> 解壓縮
<gzip> 壓縮/解壓縮文件
<gunzip> 解壓縮
<zcat> 顯示壓縮文件的內容
<lha> 壓縮/解壓縮文件
<uuencode> 把二進制文件編碼為文本文件
<uudecode> 把經過編碼的文本文件還原為二進制文件
八. MS-DOS工具集[mtools]命令
<mdir> 顯示文件列表
<mcd> 改變當前目錄
<mmd> 新建目錄
<mrd> 刪除目錄
<mdeltree> 刪除目錄樹
<m> 復制文件
<mdel> 刪除文件
<mmove> 移動文件
<mren> 更改文件或目錄名
<mattrib> 修改文件屬性
<mtype> 顯示文件內容
<m> 查詢文件或目錄大小
<minfo> 顯示磁碟信息
<mformat> 以MS-DOS方式格式化磁碟
<mlabel> 設置磁碟標簽
九. 控制外部設備相關命令
<mount> mount上設備
<umount> 解除已經mount上的設備
<eject> 彈出(CD/DVD等)
<fdformat> 格式化軟盤
<fdisk> 配置/顯示硬碟分區
<mkfs> 格式化磁碟分區
<fsck> 檢查/修復磁碟錯誤
<lpr> 列印到列印機
<lprm> 中斷列印任務
<lpq> 顯示列印任務的狀態
<lpc> 管理/控制列印任務
<ifconfig> 顯示/設定NIC配置
十. 進程及任務管理相關命令
<ps> 顯示正在運行的進程
<jobs> 顯示後台運行任務
<fg> 把任務切換到前台
<bg> 把任務切換到後台
<kill> 中止進程或任務
<killall> 中止進程或任務
<wait> 等待進程或任務的結束
<at> 設置定時執行任務
<atq> 顯示尚未執行的任務
<atrm> 刪除定時執行任務
<batch> 在系統負荷減輕的時候執行任務
<nice> 改變優先度並執行任務
<nohup> 在後台執行任務,Logout之後也不退出
<sleep> 休眠一定的時間
十一. 網路管理相關命令
<netstat> 顯示當前網路連接狀況
<route> 顯示/設置路由
<host> 顯示網路主機情況
<hostname> 顯示/設置當前主機的名字
<ping> 確認和遠程機器的連接情況
<traceroute> 顯示路由信息
<rwho> 查詢網上機器的登陸用戶
<ruptime> 查詢網上機器的系統運行時間
<rlogin> 登陸到遠程機器
<telnet> 用telnet登陸到遠程機器
<rsh> 給遠程機器發送命令
<rcp> 在遠程機器之間復制文件
<mail> 收取郵件
<sendmail> 發送郵件
<mailq> 確認郵件隊列
<ftp> 用ftp傳輸文件
十二. 其他命令
<cal> 顯示日歷
<clear> 清屏
<gcc> 編譯C語言代碼
<as> 匯編
<bc> 計算
<rpm> Redhat的包管理
<dpkg> Debian的包管理
<installpkg> Slackware的包安裝(刪除命令則是removepkg)
<XF86Setup,turboxfg,Xconfigurator> 配置 X 伺服器
<startx> 啟動 X-Window 系統
附:組合命令
重定向,如
$ ls -l /bin > ls-output
$ more ls-output
管道命令,如
$ cat file1 file2 | sort | uniq
經常被用於管道的命令
awk, fold, grep, head, nnkf, pr, sed, sort, tail, tee, tr, uniq, wc