Linux开发
文章平均质量分 63
cpuwolf
Wrote a complete Unix-like operating system which included preemptive multitasking, a non-trivial filesystem, interrupt-driven I/O, and signals
. 从事ARM嵌入式开发多年,bootload,kernel,driver都有较深的理解。
展开
-
Xcode编译器很牛的代码分析功能
主要是我要设计一套代码同时跑在三个平台上,Windows,Linux,macOS。为奎克质造的设备写个对接X-Plane的插件。这种设计多出了很多事情,同一套代码,我需要到三个OS去编译,事情多了很多。但是也带给我很多新的视野,更重要的是好处,我可以在多个OS之间交叉检查我的代码的Robust。最近在用Xcode编译代码时,发现一个不起眼的编译选项Analyze,这是以分析为目的的编译,具体背后在干什么我不知道,也不关心,这种编译方式会比普通编译时间更长点。编译完之后,左侧错误列表会列举出一原创 2022-01-01 21:47:49 · 831 阅读 · 0 评论 -
海盗船水冷风扇H80iUbuntu Linux下的降噪
sudo snap install opencorsairlinksudo snap connect opencorsairlink:raw-usbsudo snap connect opencorsairlink:hardware-observesudo opencorsairlink --device 0 --fan channel=0,mode=3Dev=0, CorsairLink Device Found: H80i GT V2!Vendor: CorsairProduct.原创 2020-07-11 05:41:53 · 637 阅读 · 0 评论 -
Ubuntu 18.04 BuildYourOwnKernel
GET SOURCEsudo apt-get install linux-sourcecd /usr/srctar xf linux-source-4.15.0.tar.bz2 -C ~/Public/cd ~/Public/linux-source-4.15.0/COMPILEcp /boot/config-4.15.0-109-generic .configLANG=C fakeroot debian/rules cleanfakeroot make-kpkg --ini原创 2020-07-11 04:22:44 · 381 阅读 · 0 评论 -
Linux内核USB HID游戏摇杆20年来都存在按键数量限制
本来是奎克质造生产的模拟飞行设备QMCP737Chttps://x-plane.vip/quickmade/qmcp737c/我在写软件,支持全平台win/lin/mac,和模拟飞行平台X-Plane 11保持一致。结果WIN/MAC对设备支持没问题,插上就可以用。但是Linux,插上也可以用,但是只剩80个按键,明明我的设备是104个按键,结果只识别出80个按键。然后用各种关键字max USB HID button number之类一顿GOOGLE搜索,无果。我记得Linus说过,原创 2020-07-10 22:09:39 · 1469 阅读 · 1 评论 -
备份一个Linux系统硬盘 II
可是随着原系统的运行和发展,这两个硬盘的内容的差距也会越来越大原创 2010-08-07 08:50:00 · 845 阅读 · 0 评论 -
备份一个Linux系统硬盘 I
假设你有一个Linux系统已经可以正常工作,现在想复制一个系统出来到另外一个硬盘上以备系统崩溃时开可以立即启用这个备份硬盘,以至于不影响系统的运行,同时这块备份硬盘可能与原系统的硬盘大小不一致。原创 2010-08-07 08:45:00 · 2570 阅读 · 0 评论 -
坚定要贡献下去
无意在网上乱搜,发现下面的bloghttp://space.oss.org.cn/space.php?uid=3&do=blog&id=191发现自己成为了对Linux kernel贡献的华人中的一名。统计是从2005年4月至今,一共有259个华人贡献过补丁,自己成为了其中的一员。说实话,真的有点激动!同时也发现华人只有259人,这个数字真是少的可怜,而且绝大多数都是大公司的支持。很荣原创 2010-01-10 21:32:00 · 1307 阅读 · 6 评论 -
SAMSUNG SOC SD IROM writer for Linux
已经测试过在Fedora10上运行顺利,需要root权限才可以执行#! /bin/bash# written by cpuwolf@gmail.com 2010mountpt=/media/diskdevicename=sdbsdcard=/dev/$devicenameif test $# -le 0 ; then echo "Error: needs IROM原创 2010-01-07 12:38:00 · 1423 阅读 · 0 评论 -
WinCE Eboot中加入Linux boot的支持
Index: flash.c =================================================================== --- flash.c (revision 1804) +++ flash.c (working copy) @@ -26,6 +26,8 @@ #include "ebootnand.h"原创 2009-12-31 10:37:00 · 1303 阅读 · 0 评论 -
Linux kernel patch提交成功
总共花费3周的时间,终于把补丁提交上去了。这次的经历让我明白坚持的重要性,没有人会对你的补丁负责,你需要去推广,去说服这些维护者,当然途中也是遇到高手相救。每个补丁的修改都是如此的严格,这也是为什么,Linux发展多年来为什么会越来越好。补丁总共提交了5次,不乏自己没经验犯下的愚蠢错误。耗时3周,你每次发从邮件,需要等待有人回复,这是个漫长的过程,耐心是少不了的。David Miller原创 2013-01-22 10:13:50 · 1910 阅读 · 1 评论 -
arm-none-linux-gnueabi
查了很久才弄清楚arm-none-linux-gnueabi交叉编译器是,与ARM公司合作的codesourcery公司推出的,基于GCC,但是进行过优化的编译器。官方网站http://www.codesourcery.com/codesourcery推出的产品叫Sourcery G++ Lite Edition,其中基于command-line的编译器是免费的,在官网上可以下载,而其中包原创 2009-08-21 22:59:00 · 10754 阅读 · 5 评论 -
Linux kernel 3.8加入MBIM的支持
引言What is new in Linux kernel 3.8?NetworkingThe cdc-mbim driver, which supports broadband modems that implement Mobile Broadband Interface Model (MBIM) 1.0, specified by the USB Implementers原创 2013-03-16 11:26:44 · 10193 阅读 · 0 评论 -
取出真正编译到的代码
经常一个大型的软件工程,里面包含甚至上GB的文件,然后根据不同的编译选项,实际只会编译到其中的一部分文件。你如何知道那些文件真正的在build过程中别用到了。我之所以改用build这个字眼,没有使用编译,这个词,是因为build过程,不只会包括编译,也时候是脚本处理,也时候是执行一些工具处理一些文件。这整个过程叫build最典型的例子,一个Linux内核,支持各种体系结构,你如果知道哪些文件你原创 2013-10-25 13:28:13 · 1836 阅读 · 0 评论 -
Ubuntu内核调试技巧
有时候在Ubuntu上开发一个PC驱动,结果导致了系统崩溃。Ubuntu 12.04测试中,发现系统默认是打开了内核转储的能力原创 2013-12-21 11:14:39 · 3178 阅读 · 0 评论 -
Ubuntu bootloader Grub2的最简单配置方法
安装Grub Customizersudo add-apt-repository ppa:danielrichter2007/grub-customizersudo apt-get updatesudo apt-get install grub-customizer剩下的就是图形界面了原创 2013-12-27 22:42:38 · 3375 阅读 · 0 评论 -
64位原子操作add
64位原子操作的加法的实现。只有看汇编才能理解1100306:80b5ef20 :1100307-80b5ef20: 53 push %ebx1100308-80b5ef21: 89 d8 mov %ebx,%eax1100309-80b5ef23: 89 ca原创 2015-02-12 19:04:13 · 2694 阅读 · 0 评论 -
ARM Linux Driver how to work with DMA
下面是arm linux中一个申请DMA buffer的例子,DMA需要uncached virtual address space,同时映射的物理内存需要是连续的,所以需要特定的函数来帮助我们。 info->data_buff = dma_alloc_coherent(&pdev->dev, MAX_BUFF_SIZE, &info->data_buff_phys, GFP_KER原创 2009-12-24 12:00:00 · 1523 阅读 · 0 评论 -
Add TEA5764 Linux radio driver
From: "Fabio Belavenuto" To: video4linux-list@redhat.comSubject: [PATCH] Add TEA5764 radio driverDate: Wed, 17 Dec 2008 20:49:33 -0200Add support转载 2009-12-19 00:00:00 · 2346 阅读 · 0 评论 -
VIM命令列表
u 恢复dx 删除一个字母dw 删除一个词de 从光标删除到词尾(不含空格)d$ 从光标删除到行尾dd 删除整个行p 粘帖r 替换+g 显示文件路径/ 正向搜索? 反向搜索:!执行外部命令o 下添一行O 上添一行$ 光标移到行尾++G 跳转到任意行h 光标左移l 光标右移k 光标上移j 光标下移原创 2007-12-09 23:06:00 · 816 阅读 · 0 评论 -
Linux使用串口做为终端的方法
linux使用串口终端,可以在/etc/inittab中使用登录程序agetty。修改如下2 : 1234 : respawn : agetty ttyS0 9600 ansi原创 2007-12-09 23:13:00 · 1821 阅读 · 0 评论 -
ARM linux kernel file analysis
<!-- @page { size: 21cm 29.7cm; margin: 2cm } P { margin-bottom: 0.21cm } H1 { margin-bottom: 0.21cm } H1.western { font-family: "文鼎PL细上海宋Uni", sans-serif; font-size: 16pt }原创 2007-12-15 19:26:00 · 1690 阅读 · 0 评论 -
repo server的project名字列举
找出/home/git/linux目录下所有的git server repository对应的project名字 find /home/git/linux/ -name "*.git"|sed s/.git$//; s///home//git//linux////原创 2009-07-28 17:55:00 · 812 阅读 · 0 评论 -
Linux Bash Script
Linux有的程序需要用户通过键盘敲入一些字符时,Linux bash script有here documents 的结构:command <<SOMESPECIALSTRINGstatments...SOMESPECIALSTRING 完全可以模拟用户输入,SOMESPECIALSTRING只是一个标识,标志开头结尾,可以随便起名字.statments是本该用键盘原创 2009-08-20 09:41:00 · 905 阅读 · 0 评论 -
Linux kernel Low Level debug
如果你运气不太好,那么第一次启动kernel,最多看见uncompressing linux...ok, booting the kernel从串口ttyS0出来,然后你什么都没了。这总情况遇见的机会还是很多的。多数原因是内核卡住了。你可能会问,内核卡住了不要紧呀,至少没卡住的代码中的printk应该可以出来。你这样想,那就是你还没有读过printk的代码。在串口驱动初原创 2009-08-28 12:16:00 · 3626 阅读 · 0 评论 -
initrd vs.initramfs
真是太不关注Linux Kernel发展,今天一大早抽了时间把initrd和initramfs的概念区分了一下,终于有点眉目,不敢独享。都知道Linux有个Ram Disk的概念,很早就有了,至少2.4的时候就有,再早我也不了解。那么initrd,就如他的名字,initial ram disk,很好理解,就是为了root fs。initramfs无非也如他的名字,initial ram f原创 2009-08-29 09:54:00 · 3744 阅读 · 2 评论 -
列举linux进程打开的所有文件
lsof -nP -p [process id]此命令需要root权限原创 2009-07-10 16:01:00 · 725 阅读 · 0 评论 -
ARM Linux关机、重启的实现
<!-- google_ad_client = "pub-3409735151169599";/* 728x15链接 */google_ad_slot = "8649712727";google_ad_width = 728;google_ad_height = 15;// -->我要说的核心问题是关机和重启在Linux Ker原创 2009-10-09 18:10:00 · 5695 阅读 · 0 评论 -
ALSA SOC架构关键点
<!--google_ad_client = "pub-3409735151169599";/* 468x15, 创建于 09-10-21 */google_ad_slot = "3284565503";google_ad_width = 468;google_ad_height = 15;// -->关于ALSA(Advanced Linux Sound原创 2009-10-17 09:08:00 · 8478 阅读 · 6 评论 -
Linux speaker beep
有时候Linux写script,想在任务完成完成是让speaker通知一声。查了一下发现真的很简单。echo -en "/007"原创 2009-10-20 13:26:00 · 1671 阅读 · 0 评论 -
Linux i2c bus driver
<!--google_ad_client = "pub-3409735151169599";/* blogspot head ad */google_ad_slot = "8483880340";google_ad_width = 468;google_ad_height = 60;// -->Linux i2c bus driver在处理读写的时候,需要对原创 2009-10-28 14:14:00 · 1280 阅读 · 0 评论 -
Google Chromium OS
期盼已久的Google Chromium OS终于横空出世。看到的内容基本和发布之前的各种谣传类似。基于Linux,以web browser为核心。 Chromium的读音如下,我已经看了他们的官法视频,验证过。 他的官网也同时发布了http://www.chromium.org原创 2009-11-20 12:14:00 · 811 阅读 · 0 评论 -
Fedora通过Http Proxy下载git
Git的host多在国外,我们下载总是很忙,找一个http proxy帮你加速吧。 1、安装 connect-proxy $ sudo yum install connect-proxy2、编辑脚本 /usr/bin/my-git-proxy #!/bin/shconnect-proxy -H http://xxx.xxx.xxx.xxx:xxx $@$原创 2009-11-24 14:20:00 · 1561 阅读 · 0 评论 -
用Linux Bash script逐行处理文本文件
这里需要用到用到命令:wc:等到文件的行薮tail:返回文件尾部的内容head:访问文件头部的内容expr:用于数学运算j=0echo $infilelen=`wc -l < $infile`while test $j -le $lendoa=`tail -$j $infile|head -1`echo $aj=`expr $j + 1`done原创 2009-12-11 11:49:00 · 1866 阅读 · 2 评论 -
操作系统内核的中神奇的代码
最近free download一个Linux kernel 2.6.22。由于工作的原因,大概有2年没有碰触Linux了,这些天又有生活无目标的感觉。花了2年时间才大概弄清楚WinCE整体的结构,基本能够理解微软的设计思想,也尝试看WinCE5的内核代码,但是有时候会很不爽,一个函数跟着跟着就丢失了。尤其是GWES,我最想知道的部分,完全没有代码。内核代码很多类似的部分,其中几乎都是C语言构成,C原创 2007-07-29 23:09:00 · 2263 阅读 · 1 评论