原创 gpio_request()簡單分析
一、軟件環境 Andorid Version:5.0 Cpu & Arch:Intel X86_64 二、File Path include/linux/gpio.h include/asm-generic/gpio.h drivers
原创 Linux內核log等級與printk打印消息控制
預定義的內核log等級 // include/linux/kern_levels.h #define KERN_SOH "\001" /* ASCII Start Of Header */ #define KE
原创 Centos7.3搭建Samba服務器
1. 安裝Samba $ yum install samba samba-client samba-common 2. 啓動Samba服務 查看Samba服務運行狀態 $ systemctl status smb.serv
原创 Linux內核input子系統淺析
kernel version: linux-4.9.13 1. 概述 Linux內核input子系統分爲三層: 設備驅動層 核心層 事件處理層 設備驅動層包含各類輸入設備驅動(如觸摸屏、鼠標、鍵盤等等),獲取輸入事件並上
原创 request_firmware()——Linux固件子系統接口函數分析
1. 概述 一些不帶內置存儲的設備,依賴於驅動預加載的固件才能運行,傳統做法是將固件二進制碼作爲一個數組編譯進驅動代碼,如下所示: static const unsigned char my_firmware[] = { 0x0
原创 初識Systemd
前言 依Linux系統慣例,帶字母d的一般爲守護進程(daemon),Systemd即爲System Daemon,是Linux下的一款系統和服務管理器,用於取代傳統的Init組件。 Systemd功能強大,諸如Gnome桌面、用
原创 Centos7.3串口無輸出問題解決方案
鄙人從事內核驅動開發工作,所使用的調試服務器爲CentOS7.3,只有在BIOS啓動階段有串口日誌,進入OS之後就沒有了。 某日,所寫的驅動一加載就會導致系統重啓,由於看不到內核panic日誌,調試很是棘手,當時因爲臨近deadlin
原创 記錄一次失敗的系統搶救/折騰經歷
一、事故起因 大概描述下事故起因: win10/ubuntu16.04雙系統,分別安裝在兩塊256Gb大小的NVME SSD上,以UEFI模式Grub2引導。某天我心血來潮,想要驗證核顯與獨顯是否能一起工作,多次在系統啓動過程中強制下
原创 Linux系統通過遠程終端修改分辨率
最近的工作是測試服務器的板載GPU,由於一切處於開發階段,連USB驅動都沒有,無法通過鍵鼠操作,切換桌面分辨率成了一項難題。 用谷歌、用百度,總算找到了一個在遠程終端修改分辨率的方法,在此記錄: 修改DISPLAY環境變量 由於通過
原创 # Centos7.3搭建Samba服務器
1. 安裝Samba $ yum install samba samba-client samba-common 2. 啓動Samba服務 查看Samba服務運行狀態 $ systemctl status smb.servic
原创 C編程的預處理技巧
1. 宏定義中的特殊符號 1.1 “#” 符號"#"的作用是將宏參數轉爲字符串常量。 下例定義一個字符串轉化宏: #define STRING(argument) #argument 將宏STRING展開: char *p = ST
原创 linux環境下交叉編譯arm架構jpeglib
1. 官網下載jpeglib源碼 下載地址 http://www.ijg.org/ 選擇目前最新的版本jpegsrc.v9c.tar.gz 2. 配置 $ ./configure --prefix=~/tool/jpeg/ --ho
原创 Ubuntu下使用VirtualBox的小技巧
使用環境 VirtualBox Version: 5.0.32 Host: Ubuntu 16.04 VHost: Win10 擴容虛擬硬盤 新增一個虛擬硬盤 進入VirtualBox虛擬機設置頁面,選擇存
原创 input子系統淺析
概述 數據結構 1 輸入設備 input_dev 2 事件處理器 input_handler 輸入設備與事件處理器的匹配連接 輸入事件的上報流程 kernel version: linux-4.9.13 1.
原创 request_firmware()分析——加載在用戶空間的固件
一些不帶內置存儲的設備,依賴於驅動預加載的固件才能運行,傳統做法是將固件二進制碼作爲一個數組編譯進驅動代碼,如下所示: static const unsigned char my_firmware[] = { 0x00, 0x