树莓派 PCF8591 AD/DA

树莓派本身没有AD/DA功能,如果树莓派外接模拟传感器,则必须外接AD/DA功能扩展板才能用。Pioneer 600扩展带有AD/DA芯片PCF8591,pcf8591带1通道8位DA,4通道8位AD,通过I2C控制。

一、DAC
1、bcm2835程序

编译并执行
gcc –Wall pcf8591.c –o pcf8591 –lbcm2835
sudo ./ pcf8591

2、Python程序

执行程序
sudo python pcf8591
3、wiringPi程序

编译并执行程序
gcc –Wall pcf8591.c –o pcf8591 –lbcm2835 -lwiringPi
sudo ./ pcf8591
二、ADC
1、bcm2835程序

编译并执行
gcc –Wall pcf8591.c –o pcf8591 –lbcm2835
sudo ./ pcf8591
2、Python程序

执行程序
sudo python pcf8591
3、wiringPi程序

编译并执行程序
gcc –Wall pcf8591.c –o pcf8591 -lwiringPi
sudo ./ pcf8591

Linux中设置UEFI启动项 -- efibootmgr

usage: efibootmgr [options]
-a | --active sets bootnum active
-A | --inactive sets bootnum inactive
-b | --bootnum XXXX modify BootXXXX (hex)
-B | --delete-bootnum delete bootnum (hex)
-c | --create create new variable bootnum and add to bootorder
-C | --create-only create new variable bootnum and do not add to bootorder
-D | --remove-dups remove duplicate values from BootOrder
-d | --disk disk (defaults to /dev/sda) containing loader
-e | --edd [1|3|-1] force EDD 1.0 or 3.0 creation variables, or guess
-E | --device num EDD 1.0 device number (defaults to 0x80)
-g | --gpt force disk with invalid PMBR to be treated as GPT
-i | --iface name create a netboot entry for the named interface
-l | --loader name (defaults to \EFI\redhat\grub.efi)
-L | --label label Boot manager display label (defaults to "Linux")
-n | --bootnext XXXX set BootNext to XXXX (hex)
-N | --delete-bootnext delete BootNext
-o | --bootorder XXXX,YYYY,ZZZZ,... explicitly set BootOrder (hex)
-O | --delete-bootorder delete BootOrder
-p | --part part (defaults to 1) containing loader
-q | --quiet be quiet
-t | --timeout seconds set boot manager timeout waiting for user input.
-T | --delete-timeout delete Timeout.
-u | --unicode | --UCS-2 pass extra args as UCS-2 (default is ASCII)
-v | --verbose print additional information
-V | --version return version and exit
-w | --write-signature write unique sig to MBR if needed
-@ | --append-binary-args file append extra args from file (use "-" for stdin)
-h | --help show help/usage

sshfs 远程挂载文件系统

SSH 是一个强大且安全的工具,我们除了可以用它来远程管理主机外,还可以通过它建立 SSH tunnel 作 Proxy 用,远程传输文件等等。而这里我想要介绍另外一个功能,那就是结合 sshfs 这个工具可以把远程主机的文件系统映射到本地主机上,透过 SSH 把远程文件系统挂载到本机上,这样我们可以不必使用 scp 工具就可以做到直接复制及删除远程主机的文件了,就像操作本地磁盘一样方便。
sshfs 是基于 FUSE 构建的 SSH 文件系统客户端程序,通过它远程主机的配置无需作任何改变,就可以透过 SSH 协议来挂载远程文件系统了,非常方便及安全。
首先安装epel的yum源方便安装
rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
yum -y install sshfs

挂载远程 ssh 文件系统:

sshfs root@192.168.1.218:/home/ /mnt/
sshfs 用户名@远程主机IP:远程主机路径 本地挂载点
sshfs -o transform_symlinks -o follow_symlinks user@hostname: /home/username/sshfs
-o transform_symlinks 表示转换绝对链接符号为相对链接符号
-o follow_symlinks 沿用服务器上的链接符号

 

通过/etc/fstab 开机自动挂载

I was able to make sshfs mount via fstab with Ubuntu 14.04 by doing using the following syntax as a standard user (note anything in CAPS is a variable for you to fill in):

USER@HOST:/REMOTE_DIR /LOCAL_DIR fuse.sshfs delay_connect,_netdev,user,idmap=user,transform_symlinks,identityfile=/home/USERNAME/.ssh/id_rsa,allow_other,default_permissions,uid=USER_ID,gid=USER_GID 0 0
This is a combination of the information found here http://superuser.com/questions/669287/automount-sshfs-using-fstab-without-mount-a and adding the **delay_connect** from here http://askubuntu.com/questions/326977/sshfs-is-not-mounting-automatically-at-boot-despite-etc-fstab-configuration.

I used this tutorial to get my USER_ID and USER_GID: https://kb.iu.edu/data/adwf.html

To find a user’s UID or GID in Unix, use the id command. To find a specific user’s UID, at the Unix prompt, enter:

id -u username

Replace username with the appropriate user’s username. To find a user’s GID, at the Unix prompt, enter:

id -g username

树莓派的启动流程

为了降低成本,树莓派省去了传统计算机用来存储引导加载程序的板载存储器(BIOS), 而是直接把引导程序放在了SD卡中。
model-b-plus-Raspberry-Pi
树莓派B+模型图

树莓派具有一款博通的BCM2835系统芯片, 当启动时,ARM1176JZF-S的CPU会处于复位状态,由VideoCore IV GPU核心负责启动系统。启动的第一阶段, 从系统芯片中加载第一阶段的启动程序, 这个启动程序负责加载存放在SD卡中的第二启动程序(bootcode.bin)。bootcode.bin在VideoCore GPU上执行并加载第三阶段的启动器start.elf。 start.elf读取存放系统配置的文件config.txt。

当config.txt文件被加载解析之后, start.elf会读取cmdline.txt和kernel.img. cmdline.txt包涵内核运行的参数,而kernel.img将会被加载到处理器分配的共享内存中,当内核加载成功,处理器将结束复位状态,内核开始正式运行,系统启动正式开始。

启动流程:
1, 系统加电。
2, 加载系统芯片中的第一启动程序。
3, 第一启动程序加载SD卡上的bootcode.bin。
4, bootcode.bin执行,并加载第三阶段启动程序start.elf。
5, start.elf读取config.txt并加载内核。
6, config.txt解析完成,start.elf读取再次加载cmdline.txt文件,最后加载内核文件,然后CPU开始运行,系统启动成功。

参考:
1, Understanding the Raspberry Pi Boot Process

Windows 与 Office KMS注册码

Windows

::Windows 10
Windows 10 Pro=W269N-WFGWX-YVC9B-4J6C9-T83GX
Windows 10 Pro N=MH37W-N47XK-V7XM9-C7227-GCQG9
Windows 10 Pro for Workstations=NRG8B-VKK3Q-CXVCJ-9G2XF-6Q84J
Windows 10 Pro for Workstations N=9FNHH-K3HBT-3W4TD-6383H-6XYWF
Windows 10 Pro Education=6TP4R-GNPTD-KYYHQ-7B7DP-J447Y
Windows 10 Pro Education N=YVWGF-BXNMC-HTQYQ-CPQ99-66QFC
Windows 10 Education=NW6C2-QMPVW-D7KKK-3GKT6-VCFB2
Windows 10 Education N=2WH4N-8QGBV-H22JP-CT43Q-MDWWJ
Windows 10 Enterprise=NPPR9-FWDCX-D2C8J-H872K-2YT43
Windows 10 Enterprise N=DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4
Windows 10 Enterprise G=YYVX9-NTFWV-6MDM3-9PT4T-4M68B
Windows 10 Enterprise G N=44RPN-FTY23-9VTTB-MP9BX-T84FV

::Windows 10 LTSC 2019
Windows 10 Enterprise LTSC 2019=M7XTQ-FN8P6-TTKYV-9D4CC-J462D
Windows 10 Enterprise N LTSC 2019=92NFX-8DJQP-P6BBQ-THF9C-7CG2H

::Windows 10 LTSB 2016
Windows 10 Enterprise LTSB 2016=DCPHK-NFMTC-H88MJ-PFHPY-QJ4BJ
Windows 10 Enterprise N LTSB 2016=QFFDN-GRT3P-VKWWX-X7T3R-8B639

::Windows 10 LTSB 2015
Windows 10 Enterprise 2015 LTSB=WNMTR-4C88C-JK8YV-HQ7T2-76DF9
Windows 10 Enterprise 2015 LTSB N=2F77B-TNFGY-69QQF-B8YKP-D69TJ

::Windows Server 2022
Windows Server 2022 Datacenter=WX4NM-KYWYW-QJJR4-XV3QB-6VM33
Windows Server 2022 Standard=VDYBN-27WPP-V4HQT-9VMD4-VMK7H

::Windows Server 2019
Windows Server 2019 Datacenter=WMDGN-G9PQG-XVVXX-R3X43-63DFG
Windows Server 2019 Standard=N69G4-B89J2-4G8F4-WWYCC-J464C
Windows Server 2019 Essentials=WVDHN-86M7X-466P6-VHXV7-YY726

::Windows Server 2016
Windows Server 2016 Datacenter=CB7KF-BWN84-R7R2Y-793K2-8XDDG
Windows Server 2016 Standard=WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY
Windows Server 2016 Essentials=JCKRF-N37P4-C2D82-9YXRT-4M63B

::Windows Server 2012 R2 and Windows 8.1
Windows 8.1 Professional=GCRJD-8NW9H-F2CDX-CCM8D-9D6T9
Windows 8.1 Professional N=HMCNV-VVBFX-7HMBH-CTY9B-B4FXY
Windows 8.1 Enterprise=MHF9N-XY6XB-WVXMC-BTDCT-MKKG7
Windows 8.1 Enterprise N=TT4HM-HN7YT-62K67-RGRQJ-JFFXW
Windows Server 2012 R2 Server Standard=D2N9P-3P6X9-2R39C-7RTCD-MDVJX
Windows Server 2012 R2 Datacenter=W3GGN-FT8W3-Y4M27-J84CP-Q3VJ9
Windows Server 2012 R2 Essentials=KNC87-3J2TX-XB4WP-VCPJV-M4FWM

::Windows Server 2012 and Windows 8
Windows 8 Professional=NG4HW-VH26C-733KW-K6F98-J8CK4
Windows 8 Professional N=XCVCF-2NXM9-723PB-MHCB7-2RYQQ
Windows 8 Enterprise=32JNW-9KQ84-P47T8-D8GGY-CWCK7
Windows 8 Enterprise N=JMNMF-RHW7P-DMY6X-RF3DR-X2BQT
Windows Server 2012=BN3D2-R7TKB-3YPBD-8DRP2-27GG4
Windows Server 2012 N=8N2M2-HWPGY-7PGT9-HGDD8-GVGGY
Windows Server 2012 Single Language=2WN2H-YGCQR-KFX6K-CD6TF-84YXQ
Windows Server 2012 Country Specific=4K36P-JN4VD-GDC6V-KDT89-DYFKP
Windows Server 2012 Server Standard=XC9B7-NBPP2-83J2H-RHMBY-92BT4
Windows Server 2012 MultiPoint Standard=HM7DN-YVMH3-46JC3-XYTG7-CYQJJ
Windows Server 2012 MultiPoint Premium=XNH6W-2V9GX-RGJ4K-Y8X6F-QGJ2G
Windows Server 2012 Datacenter=48HP8-DN98B-MYWDG-T2DCC-8W83P

::Windows 7 and Windows Server 2008 R2
Windows 7 Professional=FJ82H-XT6CR-J8D7P-XQJJ2-GPDD4
Windows 7 Professional N=MRPKT-YTG23-K7D7T-X2JMM-QY7MG
Windows 7 Professional E=W82YF-2Q76Y-63HXB-FGJG9-GF7QX
Windows 7 Enterprise=33PXH-7Y6KF-2VJC9-XBBR8-HVTHH
Windows 7 Enterprise N=YDRBP-3D83W-TY26F-D46B2-XCKRJ
Windows 7 Enterprise E=C29WB-22CC8-VJ326-GHFJW-H9DH4
Windows Server 2008 R2 Web=6TPJF-RBVHG-WBW2R-86QPH-6RTM4
Windows Server 2008 R2 HPC edition=TT8MH-CG224-D3D7Q-498W2-9QCTX
Windows Server 2008 R2 Standard=YC6KT-GKW9T-YTKYR-T4X34-R7VHC
Windows Server 2008 R2 Enterprise=489J6-VHDMP-X63PK-3K798-CPX3Y
Windows Server 2008 R2 Datacenter=74YFP-3QFB3-KQT8W-PMXWJ-7M648
Windows Server 2008 R2 for Itanium-based Systems=GT63C-RJFQ3-4GMB6-BRFB9-CB83V

::Windows Vista and Windows Server 2008
Windows Vista Business=YFKBB-PQJJV-G996G-VWGXY-2V3X8
Windows Vista Business N=HMBQG-8H2RH-C77VX-27R82-VMQBT
Windows Vista Enterprise=VKK3X-68KWM-X2YGT-QR4M6-4BWMV
Windows Vista Enterprise N=VTC42-BM838-43QHV-84HX6-XJXKV
Windows Web Server 2008=WYR28-R7TFJ-3X2YQ-YCY4H-M249D
Windows Server 2008 Standard=TM24T-X9RMF-VWXK6-X8JC9-BFGM2
Windows Server 2008 Standard without Hyper-V=W7VD6-7JFBR-RX26B-YKQ3Y-6FFFJ
Windows Server 2008 Enterprise=YQGMW-MPWTJ-34KDK-48M3W-X4Q6V
Windows Server 2008 Enterprise without Hyper-V=39BXF-X8Q23-P2WWT-38T2F-G3FPG
Windows Server 2008 HPC=RCTX3-KWVHP-BR6TB-RB6DM-6X7HP
Windows Server 2008 Datacenter=7M67G-PC374-GR742-YH8V4-TCBY3
Windows Server 2008 Datacenter without Hyper-V=22XQ2-VRXRG-P8D42-K34TD-G3QQC
Windows Server 2008 for Itanium-Based Systems=4DWFP-JF3DJ-B7DTH-78FJB-PDRHK

*****************************************************************

Office
::Office2016
Office Professional Plus 2016=XQNVK-8JYDB-WJ9W3-YJ8YR-WFG99
Office Standard 2016=JNRGM-WHDWX-FJJG3-K47QV-DRTFM
Project Professional 2016=YG9NW-3K39V-2T3HJ-93F3Q-G83KT
Project Standard 2016=GNFHQ-F6YQM-KQDGJ-327XX-KQBVC
Visio Professional 2016=PD3PC-RHNGV-FXJ29-8JK7D-RJRJK
Visio Standard 2016=7WHWN-4T7MP-G96JF-G33KR-W8GF4
Access 2016=GNH9Y-D2J4T-FJHGG-QRVH7-QPFDW
Excel 2016=9C2PK-NWTVB-JMPW8-BFT28-7FTBF
OneNote 2016=DR92N-9HTF2-97XKM-XW2WJ-XW3J6
Outlook 2016=R69KK-NTPKF-7M3Q4-QYBHW-6MT9B
PowerPoint 2016=J7MQP-HNJ4Y-WJ7YM-PFYGF-BY6C6
Publisher 2016=F47MM-N3XJP-TQXJ9-BP99D-8K837
Skype for Business 2016=869NQ-FJ69K-466HW-QYCP2-DDBV6
Word 2016=WXY84-JN2Q9-RBCCQ-3Q3J3-3PFJ6

::Office2013
Office 2013 Professional Plus=YC7DK-G2NP3-2QQC3-J6H88-GVGXT
Office 2013 Standard=KBKQT-2NMXY-JJWGP-M62JB-92CD4
Project 2013 Professional=FN8TT-7WMH6-2D4X9-M337T-2342K
Project 2013 Standard=6NTH3-CW976-3G3Y2-JK3TX-8QHTT
Visio 2013 Professional=C2FG9-N6J68-H8BTJ-BW3QX-RM3B3
Visio 2013 Standard=J484Y-4NKBF-W2HMG-DBMJC-PGWR7
Access 2013=NG2JY-H4JBT-HQXYP-78QH9-4JM2D
Excel 2013=VGPNG-Y7HQW-9RHP7-TKPV3-BG7GB
InfoPath 2013=DKT8B-N7VXH-D963P-Q4PHY-F8894
Lync 2013=2MG3G-3BNTT-3MFW9-KDQW3-TCK7R
OneNote 2013=TGN6P-8MMBC-37P2F-XHXXK-P34VW
Outlook 2013=QPN8Q-BJBTJ-334K3-93TGY-2PMBT
PowerPoint 2013=4NT99-8RJFH-Q2VDH-KYG2C-4RD4F
Publisher 2013=PN2WF-29XG2-T9HJ7-JQPJR-FCXK4
Word 2013=6Q7VD-NX8JD-WJ2VH-88V73-4GBJ7

::Office2010
Office Professional Plus 2010=VYBBJ-TRJPB-QFQRF-QFT4D-H3GVB
Office Standard 2010=V7QKV-4XVVR-XYV4D-F7DFM-8R6BM
Project Professional 2010=YGX6F-PGV49-PGW3J-9BTGG-VHKC6
Project Standard 2010=4HP3K-88W3F-W2K3D-6677X-F9PGB
Visio Standard 2010=767HD-QGMWX-8QTDB-9G3R2-KHFGJ
Visio Professional 2010=7MCW8-VRQVK-G677T-PDJCM-Q8TCP
Visio Premium 2010=D9DWC-HPYVV-JGF4P-BTWQB-WX8BJ
Access 2010=V7Y44-9T38C-R2VJK-666HK-T7DDX
Excel 2010=H62QG-HXVKF-PP4HP-66KMR-CW9BM
SharePoint Workspace 2010=QYYW6-QP4CB-MBV6G-HYMCJ-4T3J4
InfoPath 2010=K96W8-67RPQ-62T9Y-J8FQJ-BT37T
OneNote 2010=Q4Y4M-RHWJM-PY37F-MTKWH-D3XHX
Outlook 2010=7YDC2-CWM8M-RRTJC-8MDVC-X3DWQ
PowerPoint 2010=RC8FX-88JRY-3PF7C-X8P67-P4VTT
Publisher 2010=BFK7F-9MYHM-V68C7-DRQ66-83YTP
Word 2010=HVHB3-C6FV7-KQX9W-YQG79-CRY7T