導航:首頁 > 編程系統 > linuxprobe參數

linuxprobe參數

發布時間:2023-08-28 22:44:03

linux中的網卡驅動函數probe的具體作用。

probe在設備驅動被注冊到內核中的時候,被匯流排型驅動調用。

匯流排驅動類似於用輪訓方法探測匯流排上的所有設備,將設備的識別型信息和關鍵數據結構 (pci ids, usb ids, i2c ids and etc.)傳遞給probe函數,probe就會識別是否是自己負責驅動的設備,並負責完成該設備的初始化操作。

❷ 如何更改linux文件的擁有者及用戶組

usermod命令用於修改用戶的屬性,格式為「usermod [選項] 用戶名」。

在Linux系統中的一切都是文件,因此在系統中創建用戶也是修改配置文件的過程,用戶的信息被保存到了/etc/passwd文件中,我們可以直接用文本編輯器來修改其中的數值項目,也可以用usermod來修改已經創建的用戶信息項目,諸如用戶身份號碼、基本/擴展用戶組、默認終端等等:

參數 作用

-c 填寫帳號的備注信息

-d -m -m與-d連用,可重新指定用戶的家目錄並自動把舊的數據轉移過去。

-e 帳戶到期時間,格式「YYYY-MM-DD」

-g 變更所屬用戶組

-G 變更擴展用戶組

-L 鎖定用戶禁止其登陸系統

-U 解鎖用戶,允許其登陸系統

-s 變更默認終端

-u 修改用戶的UID

不要被這么多參數嚇壞啦~下面舉個例子我們先來看下帳戶的默認信息:

[root@linuxprobe ~]# id linuxprobe
uid=1000(linuxprobe) gid=1000(linuxprobe) groups=1000(linuxprobe)

我們逐一為您演示下如何為用戶增添到一個額外的擴展用戶組中,以及修改該用戶的身份號碼:

[root@linuxprobe~]# usermod -G root linuxprobe
[root@linuxprobe~]# id linuxprobe
uid=1000(linuxprobe) gid=1000(linuxprobe) groups=1000(linuxprobe),0(root)
[root@linuxprobe~]# usermod -u 8888 linuxprobe
[root@linuxprobe~]# id linuxprobe
uid=8888(linuxprobe) gid=1000(linuxprobe) groups=1000(linuxprobe),0(root)

如果還有不懂,多看看基礎《linux就該這么學》你值得擁有。

❸ 怎麼在 linux上查看某路徑下的文件

ls命令用於顯示目錄中的文件信息,格式為:「ls [選項] [文件] 」。
當咱們處在不同的工作目錄下時,能夠直接看到的文件也會發生變化,便可以通過ls命令的「-a」參數來看到全部文件(包括隱藏文件),再結合「-l」參數來查看文件的屬性、大小等詳細信息,整合之後的命令效果是這樣的:

更多linux命令:http://www.linuxprobe.com/chapter-02.html

[root@linuxprobe ~]# ls -al
total 60
dr-xr-x---. 14 root root 4096 May 4 07:56 .
drwxr-xr-x. 17 root root 4096 May 4 15:55 ..
-rw-------. 1 root root 1213 May 4 15:44 anaconda-ks.cfg
-rw-------. 1 root root 957 May 4 07:54 .bash_history
-rw-r--r--. 1 root root 18 Dec 28 2013 .bash_logout
-rw-r--r--. 1 root root 176 Dec 28 2013 .bash_profile
-rw-r--r--. 1 root root 176 Dec 28 2013 .bashrc
drwx------. 10 root root 4096 May 4 07:56 .cache
drwx------. 15 root root 4096 May 4 07:49 .config
-rw-r--r--. 1 root root 100 Dec 28 2013 .cshrc
drwx------. 3 root root 24 May 4 07:46 .dbus
drwxr-xr-x. 2 root root 6 May 4 07:49 Desktop
drwxr-xr-x. 2 root root 6 May 4 07:49 Documents
drwxr-xr-x. 2 root root 6 May 4 07:49 Downloads
-rw-------. 1 root root 16 May 4 07:49 .esd_auth
-rw-------. 1 root root 628 May 4 07:56 .ICEauthority
-rw-r--r--. 1 root root 1264 May 4 07:48 initial-setup-ks.cfg
drwx------. 3 root root 18 May 4 07:49 .local
drwxr-xr-x. 2 root root 6 May 4 07:49 Music
drwxr-xr-x. 2 root root 6 May 4 07:49 Pictures
drwxr-xr-x. 2 root root 6 May 4 07:49 Public
-rw-r--r--. 1 root root 129 Dec 28 2013 .tcshrc
drwxr-xr-x. 2 root root 6 May 4 07:49 Templates
drwxr-xr-x. 2 root root 6 May 4 07:49 Videos
-rw-------. 1 root root 1962 May 4 07:54 .viminfo

如果需要看目錄文件信息的話,需要額外添加一個-d參數才可以,例如查看/etc目錄中文件的許可權與屬性:

[root@linuxprobe ~]# ls -ld /etc
drwxr-xr-x. 132 root root 8192 Jul 10 10:48 /etc

❹ linux spi設備驅動中probe函數何時被調用

這兩天被設備文件快搞瘋了,也怪自己學東西一知半解吧,弄了幾天總算能把設備注冊理清楚一點點了。就以spi子設備的注冊為例總結一下,免得自己忘記。
首先以注冊一個spidev的設備為例:
static struct spi_board_info imx5_spi_printer_device[] __initdata =
{
{
.modalias = "spidev",
.max_speed_hz = 8000000,
.bus_num = 1,
.chip_select = 1,
.mode = SPI_MODE_0,
},
};
spi_register_board_info(imx5_spi_printer_device,ARRAY_SIZE(imx5_spi_printer_device));

在mx5_loco.c文件中添加上面結構體spi_board_info,modalias必須指定已有的一個驅動,至於bus_num和chip_select,如果你不知道bus_num是多少,可以在你的父驅動中列印出來,這里的bus_num一定要和父類的bus_num一致,否則是無法生成設備文件的。如果spi一直沒有時鍾信號,很有可能是bus_num不對。
這樣系統起來之後就會在/dev目錄下出現一個名為spidev1.1的設備文件,讀寫這個文件就可以實現spi的操作
還有下面這種情況:
static struct spi_board_info prt_spi_device[] __initdata = {
{
.modalias = "HotPRT",
.max_speed_hz = 12500000, /* max spi clock (SCK) speed in HZ */
.bus_num = 1,
.chip_select = 1,
// .mode = SPI_MODE_0,
.platform_data = 0,
},
};
spi_register_board_info(prt_spi_device, ARRAY_SIZE(prt_spi_device));

我自己實現了一個spi的驅動,然後需要創建一個設備文件,設備文件的創建是在probe中完成。
static struct spi_driver prt_driver = {
.driver = {
.name = "HotPRT",
.bus = &spi_bus_type,
.owner = THIS_MODULE,
},
.probe = prt_probe,
.remove = __devexit_p(prt_remove),
};
spi_register_driver(&prt_driver);
但是我開始一直觸發不了probe,於是找啊找,總算知道probe的調用過程了,如下:
int spi_register_driver(struct spi_driver *sdrv)
{
sdrv->driver.bus = &spi_bus_type;
if (sdrv->probe)
sdrv->driver.probe = spi_drv_probe;
if (sdrv->remove)
sdrv->driver.remove = spi_drv_remove;
if (sdrv->shutdown)
sdrv->driver.shutdown = spi_drv_shutdown;
return driver_register(&sdrv->driver);
}
然後調用driver_register
<pre name="code" class="cpp">int driver_register(struct device_driver *drv)
{
int ret;
struct device_driver *other;

BUG_ON(!drv->bus->p);

if ((drv->bus->probe && drv->probe) ||
(drv->bus->remove && drv->remove) ||
(drv->bus->shutdown && drv->shutdown))
printk(KERN_WARNING "Driver '%s' needs updating - please use "
"bus_type methods\n", drv->name);

other = driver_find(drv->name, drv->bus);
if (other) {
put_driver(other);
printk(KERN_ERR "Error: Driver '%s' is already registered, "
"aborting...\n", drv->name);
return -EBUSY;
}

ret = bus_add_driver(drv);
if (ret)
return ret;
ret = driver_add_groups(drv, drv->groups);
if (ret)
bus_remove_driver(drv);
return ret;
}

直接看bus_add_driver
klist_init(&priv->klist_devices, NULL, NULL);
priv->driver = drv;
drv->p = priv;
priv->kobj.kset = bus->p->drivers_kset;
error = kobject_init_and_add(&priv->kobj, &driver_ktype, NULL,
"%s", drv->name);
if (error)
goto out_unregister;

if (drv->bus->p->drivers_autoprobe) {
error = driver_attach(drv);
if (error)
goto out_unregister;
}
klist_add_tail(&priv->knode_bus, &bus->p->klist_drivers);
mole_add_driver(drv->owner, drv);

這里只截取一部分,最後調用的是driver_attach
int driver_attach(struct device_driver * drv)
{
return bus_for_each_dev(drv->bus, NULL, drv, __driver_attach);
}

真正起作用的是__driver_attach:

static int __driver_attach(struct device * dev, void * data)
{
。。。
if (!dev->driver)
driver_probe_device(drv, dev);
。。。
}

int driver_probe_device(struct device_driver * drv, struct device * dev)
{
。。。
//1.先是判斷bus是否match:
if (drv->bus->match && !drv->bus->match(dev, drv))
goto done;
//2.再具體執行probe:
ret = really_probe(dev, drv);
。。。
}

really_probe才是我們要找的函數:
static int really_probe(struct device *dev, struct device_driver *drv)
{
。。。
//1.先是調用的驅動所屬匯流排的probe函數:
if (dev->bus->probe) {
ret = dev->bus->probe(dev);
if (ret)
goto probe_failed;

} else if (drv->probe) {
//2.再調用你的驅動中的probe函數:
ret = drv->probe(dev);
if (ret)
goto probe_failed;
}
。。。
}

其中,drv->probe(dev),才是真正調用你的驅動實現的具體的probe函數。至此probe函數被調用。
在板文件中添加spi_board_info,並在板文件

❺ 如何在Linux中查看所有正在運行的進程

ps命令用於查看系統中的進程狀態,格式為:「 [參數]」,

常見的ps命令參數包括有:

-a 顯示所有的進程(包括其他用戶的)

-u 用戶以及其他詳細信息

-x 顯示沒有控制終端的進程

Linux系統中時刻運行著許許多多的進程,如果能夠合理的管理它們,絕對有益於對系統的性能優化,Linux系統中進程最常見的5種不同的狀態是運行、中斷、不可中斷、僵死與停止,它們的含義分別是:

R(運行):正在運行或在運行隊列中等待。

S(中斷):休眠中, 在等待某個條件的形成或接收到信號。

D(不可中斷):收到信號不喚醒和不可運行, 進程必須等待直到有中斷發生。

Z:(僵死):進程已終止, 但進程描述符存在, 直到父進程調用wait4()系統調用後釋放。

T:(停止):進程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信號後停止運行。當執行"ps aux"命令後通常會看到下面格式的進程狀態,表格中只是列舉了部分輸出值,而且正常的輸出值中不包括中文注釋部分:

top命令前面的五行為系統整體的統計信息:

第1行:系統時間,運行時間,登錄終端數,系統負載(分別為1分鍾、5分鍾、15分鍾的平均值,數值越小意味著負載越低)。

第2行:進程總數,運行中的,睡眠中的,停止的,僵死的。

第3行:用戶佔用資源,系統內核佔用資源,改變過優先順序的進程,空閑的資源,等待輸入輸出的時間。此行數據均為CPU數據並以百分比格式顯示,例如"99.2 id"意味著有99.2%的CPU處理器資源正在空閑中。

第4行:物理內存總量,使用量,空閑量,作為內核緩存的內存量。

第5行:虛擬內存總量,使用量,空閑量,已被提前載入的內存數據。

為了更好的了解Linux伺服器,成為一名合格的運維人員,您必須具備快速查看Linux系統運行狀態的能力。Linux命令最大的特點就是要與其他命令搭配使用,重於靈活運用,可參考linuxprobe。COM上ps、top命令經常用於系統工作查看狀態,ps命令與管道符技術搭配使用,可用於來抓取到某個指定服務進程所對應的PID號碼。

❻ Linux下怎麼創建目錄命令與刪除命令大全

1.mkdir命令
mkdir命令用於創建空白的目錄,格式為「mkdir [選項] 目錄」。
在Linux系統中,文件夾是最常見的文件類型之一。除了能創建單個空白目錄外,mkdir命令還可以結合-p參數來遞歸創建出具有嵌套疊層關系的文件目錄。
[root@linuxprobe ~]# mkdir linuxprobe
[root@linuxprobe ~]# cd linuxprobe
[root@linuxprobe linuxprobe]# mkdir -p a/b/c/d/e
[root@linuxprobe linuxprobe]# cd a
[root@linuxprobe a]# cd b
[root@linuxprobe b]#

2.rm命令
rm命令用於刪除文件或目錄,格式為「rm [選項] 文件」。
在Linux系統中刪除文件時,系統會默認向您詢問是否要執行刪除操作,如果不想總是看到這種反復的確認信息,可在rm命令後跟上-f參數來強制刪除。另外,想要刪除一個目錄,需要在rm命令後面一個-r參數才可以,否則刪除不掉。我們來嘗試刪除前面創建的install.log和linux.log文件:
[root@linuxprobe ~]# rm install.log
rm: remove regular empty file 『install.log』? y
[root@linuxprobe ~]# rm -f linux.log
[root@linuxprobe ~]# ls
[root@linuxprobe ~]#

閱讀全文

與linuxprobe參數相關的資料

熱點內容
網路硬碟存儲製作 瀏覽:4
iphone怎麼備份數據到電腦 瀏覽:41
微信小程序報表控制項 瀏覽:722
ipad添加不了qq郵箱賬號和密碼 瀏覽:503
matlab中文文件名 瀏覽:236
excel是啥類型文件 瀏覽:471
安慶培訓編程怎麼選 瀏覽:817
vs2010mfc工具箱 瀏覽:402
刪除文件重置win10怎麼恢復 瀏覽:180
新裝win10有線連不上 瀏覽:785
資料庫商品名唯一怎麼標注 瀏覽:214
電信5g網路什麼時候出 瀏覽:626
手機如何把視頻打包到文件夾裡面 瀏覽:248
excel數據轉vcf文件 瀏覽:585
編程題如何左右翻轉 瀏覽:920
wp10微信安裝不了 瀏覽:793
微軟資料庫密碼怎麼改 瀏覽:627
我們是貴族什麼app可以看 瀏覽:65
哪個app認字免費 瀏覽:964
少兒編程線上教育如何 瀏覽:137

友情鏈接