Build NanoPi NEO Manual

最近入手了一块友善的NanoPi NEO

全志的H3芯片,512M内存,板载100M网口和USB2.0口,接口齐全。

虽然有官方提供的源码可以折腾,但还是选择从头开始。

  1. 从Linaro下载交叉编译工具
    wget https://releases.linaro.org/components/toolchain/binaries/4.9-2017.01/arm-linux-gnueabihf/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz

  2. 从官网克隆u-boot仓库
    git clone git://git.denx.de/u-boot.git

  3. 从官网下载最新内核
    wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.10.5.tar.xz

  4. 从官网下载ubuntu最小系统
    wget http://cdimage.ubuntu.com/ubuntu-base/releases/16.04/release/ubuntu-base-16.04-core-armhf.tar.gz

  5. 环境变量设置
    #!/bin/bash
    export PATH=/opt/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin:$PATH
    export ARCH=arm
    export CROSS_COMPILE=arm-linux-gnueabihf-

  6. 编译u-boot
    make nanopi_neo_defconfig
    make -j8
    成果物:u-boot-sunxi-with-spl.bin

  7. 编译内核
    make sunxi_defconfig
    make zImage dtbs modules -j8
    成果物:arch/arm/boot/zImage arch/arm/boot/dts/dts/sun8i-h3-nanopi-neo.dtb

  8. 准备TF卡
    分区:MBR+64M FAT BOOT+REMAIN XG ROOT+1G SWAP

dd if=u-boot-sunxi-with-spl.bin of=/dev/sdX bs=1024 seek=8

  1. 准备BOOT分区

boot.cmd
setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p2 rootwait panic=10
load mmc 0:1 0x43000000 ${fdtfile} || load mmc 0:1 0x43000000 boot/${fdtfile}
load mmc 0:1 0x42000000 uImage || load mmc 0:1 0x42000000 boot/uImage
bootm 0x42000000 - 0x43000000

boot.csr
mkimage -A arm -O linux -T script -C none -n uboot -d boot.cmd boot.scr
script.bin
fex2bin nanopi_neo.fex script.bin
uImage

mkimage -A arm -O linux -T kernel -C none -a 0x40008000 -e 0x40008000 -n linux-4.10.4-image -d zImage uImage

Ram disk还没有弄好
load mmc 0:1 0x42000000 uImage || load mmc 0:1 0x42000000 boot/uImage
mkimage -A arm -O linux -T ramdisk -C none -a 0x48000000 -e 0x48000000 -n linux-4.10.4-initrd -d initrd.img uInitrd

  1. 文件系统

解压Ubuntu core到TF卡ROOT分区
sudo cp -a /usr/bin/qemu-arm-static rootfs/usr/bin/
sudo chroot rootfs/
passwd root
ln -s /lib/systemd/system/serial-getty\@.service /etc/systemd/system/getty.target.wants/serial-getty@ttyS0.service
apt install ifupdown net-tools
apt install udev

  1. 网络
    下载sun8i-emac patch
    dts添加:

    &emac {
    phy-handle = <&int_mii_phy>;
    phy-mode = "mii";
    allwinner,leds-active-low;
    status = "okay";
    };

  2. 移动硬盘
    内核编译+USB MASS Storage支持

最后贴上fex文件和网卡patch:
https://ocean.kevin125.com/cloud/index.php/s/sd7vPfd2sotuXxC

Install SSL (letsencrypt) On Synology DSM5 Manually

听说DSM6支持Let’s Encrypt,但是咱用DSM5也不能落下!

  1. 使用ipkg安装一些必须的组件

ipkg install libcurl openssl grep mktemp bash git

  1. Clone Let’s Encrypt脚本仓库

mkdir /volume1/system

cd /volume1/system

git clone https://github.com/lukas2511/dehydrated

cd dehydrated

  1. 拷贝配置文(docs/example/config)件到 /etc/dehydrated/config,然后根据自己需求配置

  2. 创建并编辑 domains.txt
    mydomain.com a.mydomain.com
    mydomain.net a.mydomain.net

  3. 编辑 /etc/httpd/conf/extra/httpd-userdir.conf-user


Alias /.well-known/acme-challenge /var/www/dehydrated

Order allow,deny
Allow from all

由于我已经开启Https,所以在这里卡了好久,Https需要把上述代码加到如下配置文件:

/etc/httpd/conf/extra/httpd-ssl.conf-user

*后续如果你开启HSTS的话,更新证书会遇到问题,修改上述文件即可。

synoservicectl --restart httpd-user

  1. 生成证书

./dehydrated -c

  1. 计划任务
    ./dehydrated -c
    cp -f /volume1/system/dehydrated/certs/xxx/fullchain.pem /usr/syno/etc/ssl/ssl.crt/server.crt
    cp -f /volume1/system/dehydrated/certs/xxx/privkey.pem /usr/syno/etc/ssl/ssl.key/server.key
    synoservicectl --restart httpd-sys

保存到文件,添加执行权限,在DSM里添加计划任务即可。

Addon Xpenology BootStrap IPKG DSM 5

在Control Panel中开启SSH登陆,使用Putty登陆

cd /volume1/@tmp

wget http://ipkg.nslu2-linux.org/feeds/optware/syno-i686/cross/unstable/syno-i686-bootstrap_1.2-7_i686.xsh

chmod +x syno-i686-bootstrap_1.2-7_i686.xsh

sh syno-i686-bootstrap_1.2-7_i686.xsh

rm syno-i686-bootstrap_1.2-7_i686.xsh

ipkg update

ipkg upgrade

vi /etc/rc.local
#!/bin/sh

mount -o bind /volume1/@optware /opt

[ -x /etc/rc.optware ] && /etc/rc.optware start

exit 0

vi /root/.profile

PATH=/opt/bin:/opt/sbin/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin

Setup NUT on Ubuntu Server Xenial for Ladis H1000

前段时间买了雷迪司UPS H1000 600W

测试了三个方案

一. apcupsd
看着不兼容,猜测只是给APC的电源提供的解决方案

二. ViewPower 官方程序
在Ubuntu Server Xenial 上安装和运行倒是顺利,登录Web进行管理就行。
但是个人不太喜欢Java和Tomcat之类…
加上发现服务器无法正常重启(重启卡住!),果断卸载!

三. NUT
sudo apt install nut-server nut-client nut-cgi
在配置后运行 upsdrvctl 发现报错,目测驱动有问题
一番Google后,下载源码编译
git clone git://github.com/networkupstools/nut.git

            make && sudo make install
    然后配置/usr/local/ups/etc/ups.conf

    [UPS]
    driver = nutdrv_qx
    subdriver = cypress
    vendorid = 0665
    productid = 5161
    port = auto
    desc = "Ladis H1000"


    /usr/local/ups/etc/upsd.conf
    STATEPATH /var/state/ups
    LISTEN 127.0.0.1 3493
    LISTEN 192.168.100.100 3493
    

    最后在/etc/rc.local添加
    /usr/local/ups/sbin/upsdrvctl -u root start
    /usr/local/ups/sbin/upsd -u root

    最后nut monitor用apt安装的,upsd 用自己编译的
        - 还差nut server配置

Setup Time Machine on Ubuntu Server

1、安装 Netatalk

sudo apt-get install netatalk

2、设置 Time Machine 备份文件存放位置

vi /etc/netatak/AppleVolumes.default

#~/ “Home Directory”
/backup/TimeMachine “TimeMachine” options:tm

3、安装及配置 Avahi

vi /etc/avahi/services/afpd.service

%h
_afpovertcp._tcp
548
_device-info._tcp
0
model=OSX

4、重启 netatalk 和 avahi

sudo service netatalk restart
sudo service avahi-daemon restart

5、 Mac OSX 这边的设置

执行这个命令让 Time Machine 能够使用网络磁盘作为备份目标位置:

defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1

打开 “系统偏好设置” -> “Time Machine” -> “开” -> “选择磁盘” 然后选择 “Time Machine” 文件夹。

Setup VirtualBox on Ubuntu Server

配置VBOX WEB控制台和自动启动

  1. 官网下载deb 和 expack
  2. sourceforge下载phpvirtualbox
  3. 安装 4.3 和 5.0类似
    sudo dpkg -i virtualbox-4.3_4.3.10-93012~Ubuntu~precise_amd64.deb
    sudo VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.3.10-93012.vbox-extpack

Web

vi /etc/default/virtualbox

VBOXWEB_USER=root

service vboxweb-service restart

Auto Start

cat /etc/default/virtualbox

VBOXWEB_USER=root

VBOXAUTOSTART_DB=/etc/vbox/autostart

VBOXAUTOSTART_CONFIG=/etc/vbox/autostart.cfg

VBoxManage setproperty autostartdbpath /etc/vbox/autostart

touch autostart/root.start

tree
.
├── autostart
│ └── root.start
└── autostart.cfg

1 directory, 2 files

vi autostart.cfg

default_policy = allow

VBoxManage modifyvm "Windows XP" --autostart-enabled on

+关机配置SaveState(否则虚拟机会被直接断电)

+开机多个VM延时启动(同时启动负载太高,也可能启动失败)

Hostus美国VPS主机便宜方案汇总

第一、2款便宜年付美国、伦敦VPS方案(优先这个方案)

OVZ-768 OVZ-2048
CPU核心:1核心 CPU核心:1核心
内存:768MB /768MB vSwap 内存:2048MB /2048MB vSwap
硬盘:20GB 硬盘:75GB
端口:1Gbps 端口:1Gbps
月流量:2000GB 月流量:2000GB
架构/系统:OpenVZ 架构/系统:OpenVZ
独立IP:1IP 独立IP:2IP
价格:$16.00/年(HostUS Hosting 价格:$35/年(HostUS Hosting

HostUS美国数据中心,这两款原本发布在LET上的年付最低16美元方案目前还是有效的。可以选择洛杉矶、达拉斯、亚特兰大、华盛顿、伦敦等机房,伦敦因为带有10GBPS DDOS防护,所以需要额外多5美元每月。

第二、HostUS KVM架构方案(洛杉矶、亚特兰大、华盛顿,可搭建WIN系统)

KVM0.5 KVM1 KVM2 KVM4
CPU核心:1核心 CPU核心:2核心 CPU核心:2核心 CPU核心:3核心
内存:512MB 内存:1024MB 内存:2048MB 内存:3072MB
硬盘:25GB 硬盘:45GB 硬盘:75GB 硬盘:100GB
端口:1Gbps 端口:1Gbps 端口:1Gbps 端口:1Gbps
月流量:750GB 月流量:1000GB 月流量:2000GB 月流量:3000GB
架构/系统:KVM 架构/系统:KVM 架构/系统:KVM 架构/系统:KVM
独立IP:1IP 独立IP:1IP 独立IP:1IP 独立IP:1IP
价格:$4.35/月(HostUS Hosting 价格:$7.95/月(HostUS Hosting 价格:$13.95/月(HostUS Hosting 价格:$19.95/月(HostUS Hosting

目前,HOSTUS KVM架构的VPS拥有洛杉矶、亚特兰大、华盛顿3个机房,后面应该会陆续都上的(我们点击直达链接后到机房选项中选择),如果我们对这些方案不满意,也可以到官方直接自定义配置不同的内存、硬盘等参数定制配置。(使用LETKVM20优惠码享受KVM八折)

2016.8 可以使用的优惠码VPS15OFF

Change From Apache to Nginx

从Apache转至Nginx阵营

最开始使用Apache的原因是一条Apt命令可以安装好一切。

最近网站一直断断续续不能访问,一开始以为VPS的问题…然后换支持支付宝的Hostus.us,问题依旧…

然后怀疑Apache?开始换Nginx…各种折腾…

目前基本稳定了,主要大爱Nginx的反向代理和负载均衡,学会了配置起来也方便很多。