2016年8月 - 炫Q香蕉派

2016年8月

设备驱动程序的HelloWorld

设备驱动程序其实并不是很复杂,这里实验了一个hello的例子

#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");
static int hello_init(void)
{
        printk(KERN_ALERT "Hello, MikuQ.com\n");
        return 0;
}
static void hello_exit(void)
{
        printk(KERN_ALERT "Goodbye, MikuQ!\n");
}
module_init(hello_init);
module_exit(hello_exit);

编译这个程序需要建立一个Makefile文件

obj-m := hello.o
KERNELDR := /usr/src/linux-headers-3.4.112-sun8i
PWD := $(shell pwd)
modules:
        $(MAKE) -C $(KERNELDR) M=$(PWD) modules
moduels_install:
        $(MAKE) -C $(KERNELDR) M=$(PWD) modules_install
clean:
        rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions

我们需要的目标文件就是hello.ko,在root下,可以用insmod hello.ko来安装,rmmod hello来卸载,lsmod来查看,至于输出信息在控制台下,如果需要可以通过dmesg来查看

[10214.723221] Hello, MikuQ.com
[10224.723695] Goodbye, MikuQ!

参考文献:http://www.cnblogs.com/wangyuezhuiyi/archive/2011/11/15/2250102.html
http://www.yeolar.com/note/2009/06/10/embedded-linux-led-driver/

给开发板设置静态IP

一般我们的用法是插上网线然后去路由里找IP,但是偶尔也会变,造成一些麻烦,如何设置固定IP呢,应该很简单,只是做一下实际操作的纪录,首先通过 cat /etc/network/interfaces 看一下网络设置

# Wired adapter #1
auto eth0
        iface eth0 inet dhcp
#       hwaddress ether # if you want to set MAC manually
#       pre-up /sbin/ifconfig eth0 mtu 3838 # setting MTU for DHCP, static just: mtu 3838
#
# Wired adapter #2
#auto eth1
#       iface eth1 inet dhcp
#       hwaddress ether # if you want to set MAC manually
#       pre-up /sbin/ifconfig eth0 mtu 3838 # setting MTU for DHCP, static just: mtu 3838
#
# Wireless adapter #1
#auto wlan0
#       iface wlan0 inet dhcp
#       wpa-ssid SSID
#       wpa-psk xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# to generate proper encrypted key: wpa_passphrase yourSSID yourpassword
#
# Local loopback
auto lo
        iface lo inet loopback

- 阅读剩余部分 -

全彩LED点阵的改造

感谢longbox提供的全彩led点阵,研究了一周终于有些眉目了,点阵是32*32的,和一般点阵不同的是采用了中庆的ZQ97051主控芯片,资料很少,研究了几天也没有进展,最终决定拆掉主控,改为普通点阵来玩。
05.jpg

- 阅读剩余部分 -

Arduino下IO速度的测试

Arduino版本arduino-1.6.7,测试型号Arduino Nano,测试工具Saleae Logic 1.1.15
测试代码:

void setup() {
  pinMode(13, OUTPUT);
}

void loop() {
  digitalWrite(13, HIGH);
  digitalWrite(13, LOW);
  digitalWrite(13, HIGH);
  digitalWrite(13, LOW);
}

测试结果:
01.png

- 阅读剩余部分 -

linux下的数据备份rsync同步

格式成NTFS的64G盘插到USB上然后sudo fdisk -l

Disk /dev/sda: 59.4 GiB, 63753420800 bytes, 124518400 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x6e697373

Device     Boot      Start        End    Sectors   Size Id Type
/dev/sda1  ?    1936269394 3772285809 1836016416 875.5G 4f QNX4.x 3rd part
/dev/sda2  ?    1917848077 2462285169  544437093 259.6G 73 unknown
/dev/sda3  ?    1818575915 2362751050  544175136 259.5G 2b unknown
/dev/sda4  ?    2844524554 2844579527      54974  26.9M 61 SpeedStor

Partition table entries are not in disk order.

安装NTFS支持包sudo apt-get install ntfs-3g
挂在u盘sudo mount -t auto /dev/sda /media

cd /media
mkdir backup
sudo apt-get install rsync
rsync -av --delete /home/pi/work/ /media/backup/

可以放到计划任务中去,定时刷新同步

也可以免密码同步
rsync -av --delete /home/pi/test user@network:/home/user/backup/

参考:http://bbs.ickey.cn/community/forum.php?mod=viewthread&tid=46058&extra=page%3D1