January 06, 2014

hexo文件结构及网站优化

文件结构

使用hexo已经一周左右时间,由于看上了html5up制作的这款主题而没有使用自带的light主题。hexo生成静态网站时会引用很多主题的设置,这就要修改主题文件,而不单单是hexo程序,好在两者的结构都不算太复杂,能让我得心应手的修改,下面就简单说下hexo的文件结构。重要的文件(文件夹)我都在行尾加上“*"标。

.
├── _config.yml #程序主配置,程序能修改的大部分在此*
├── db.json
├── debug.log
├── node_modules #npm安装的hexo插件
│   ├── hexo-generator-feed
│   ├── hexo-generator-sitemap
│   └── hexo-theme-greyshade
├── package.json
├── public #hexo g生成的内容文件夹,这里就是你所看到的最终网页,和.deploy内容相同
│   ├── about
│   ├── archives
│   ├── atom.xml
│   ├── categories
│   ├── CNAME
│   ├── css
│   ├── fancybox
│   ├── index.html
│   ├── js
│   ├── LICENSE.txt
│   ├── README.txt
│   ├── robot.txt
│   ├── sitemap.xml
│   └── tags
├── scaffolds #模板文件夹,hexo new引用的这里
│   ├── draft.md
│   ├── page.md
│   ├── photo.md
│   └── post.md
├── scripts
├── source #所有文章文件放在这里
│   ├── about
│   ├── _drafts
│   └── _posts
└── themes #主题文件夹
    ├── greyshade
    ├── light #自带的主题
    └── striped #这是我用的主题
January 05, 2014

openwrt开启Samba作为共享中心

为Openwrt接入一个大U盘,不用来作共享中心的话实在没什么用处了,这也是为日后脱机BT下载提供一个基础。

安装

opkg update
opkg install samba36-server luci-app-samba

配置文件

samba的配置文件只有两个,而且默认配置稍作修改就可以使用

root@openwrt:~# vi /etc/samba/smb.conf.template
[global]
    netbios name = OpenWrt 
    display charset = UTF-8
    interfaces = 127.0.0.1/8 lo 192.168.3.1/24 fd73:3a9a:156::1/60 br-lan #内网IP
    server string = OpenWrt
    unix charset = UTF-8
    workgroup = WORKGROUP
    browseable = yes
    deadtime = 30
    domain master = yes
    encrypt passwords = true
    enable core files = no
    guest account = nobody #匿名用户
    guest ok = yes #匿名用户
    invalid users = root
    local master = yes
    load printers = no
    map to guest = Bad User
    max protocol = SMB2
    min receivefile size = 16384
    null passwords = yes #无需密码
    obey pam restrictions = yes
    os level = 20
    passdb backend = smbpasswd
    preferred master = yes
    printable = no
    security = user
    smb encrypt = disabled
    smb passwd file = /etc/samba/smbpasswd
    socket options = TCP_NODELAY IPTOS_LOWDELAY
    syslog = 2
    use sendfile = yes
    writeable = yes #可写
January 03, 2014

利用extroot为openwrt扩充存储空间

水星这款MW4350r内存为128M,运行很多程序都不在话下。但是却只提供了8M Flash存储空间,而路由器系统还占了1.9M,剩下的5M空间不足以支持安装很多软件,比如我在安装python的时候就报错提示存储空间不足,这确实很郁闷,但幸好Openwrt还提供了extroot方式来扩展存储,来发挥路由器和Openwrt系统的真正实力。

pivot-overlay还是pivot-root?

我把两种方式都试过,pivot-overlay方式不能够把安装程序的位置移到USB存储装置上,但是pivot-root方式可以,所以我选择了后者。pivot-root方式使/覆盖掉了/overlay成为rootfs,我认为这种方式更接近原生的Linux系统。

而从官方的文档来看,目前pivot-root已经没有以前的缺点和不足,选择哪个已经是个人需求而不是技术问题了。

网上大部分文章帖子都是2009-2010年间的,所以大部分可能都是pivot-overlay的。如果对这部分不太理解,请仔细阅读官方Wiki:ExtRoot: How it works,The OpenWrt Flash Layout

安装必要的包

opkg update
opkg install e2fsprogs kmod-usb-core kmod-usb2 kmod-usb-storage usbutils kmod-fs-ext4 block-mount

e2fsprogs包提供了mkfs(mkfs.ext3,mkfs.ext4)、fsck等工具。

kmod-usb2只提供了USb2.0的驱动,如果你的是USB1.0(1.1)的,还需要单独安装驱动。

kmod-fs-ext4是用来挂载ext4文件系统的,如果你想使用ext3文件格式就安装相应的包。

usbutils不是必装,仅提供了lsusb命令。

January 02, 2014

水星(Mercury)MW4530r刷Openwrt

经过两天的不屑折腾,终于为我的Mw4530r安装上了Openwrt。从最后安装成功往回看,其实整个过程非常简单,但是由于是第一次接触,走了不少弯路,本应该一个小时就完成的工作,却整整花了我两天时间。再次发篇文章庆祝下,也给其他朋友一些参考。

下载文件

水星这款路由器是ar71xx芯片的,因为较新,所以还没有官方的稳定版。在Openwrt的snapshots/trunk目录搜索下载我们需要的刷机文件,一般情况一个型号有两个文件,一个名字里带factory,从其他固件系统刷Openwrt下载这个文件;一个名字带sysupgrade,已经是Openwrt系统的用此文件升级。

刷机

组装好路由器,接通电源,电脑网卡口连接路由器任意Lan口,打开浏览器访问http://192.168.1.1 就可以看见水星的原厂界面。利用原厂固件的升级功能,提交下载好的Openwrt刷机文件即可直接刷机,非常的方便。稍等片刻等待路由器自动重启,此时刷机完成。

初始化

Openwrt的固件是不带UI界面的,在安装用户界面之前,用户需要先进行简单的初始化工作。

使用telnet登陆路由器

telnet 192.168.1.1

Linux系统自带命令,Windows用户需要在控制面板-->程序里面启用telnet功能。

修改登录密码

passwd

更改好密码后,dropbear(ssh)登录方式开启,telnet登录方式关闭。

退出telnet,用ssh方式登陆,Windows用户可以下载putty登陆

exit
ssh root@192.168.1.1

到此我们已经成功初始化了Openwrt。

December 31, 2013

修复变砖的WNR2200

手中有个NetGear WNR2200路由器,当初买这个就是看重可以刷机,但是买回来才发现只能刷DD-wrt,于是就刷了DD安心的用了半年。

最近看到Openwrt的trunk目录里有我这款机器的固件了,立刻操刀刷起。不幸的是刷完后telnet不通网关,failsafe模式也无法开启。无奈中发现NetGear官网提供了tftp小工具确实有效,让我变砖的路由器起死回生。

方法也很简单,官方文库里说明的很详细,这里简单记录下要点。

1.下载工具和路由器官方固件

2.打开下载好的软件,设置好网关192.168.1.1,加载下载好的固件,密码不用填

3.断开路由器电源10秒左右,之后接通......