Jump to Navigation

Hardware

计算机硬件

macbook linux问题

macbook linux问题

启动声音后键盘输入响应慢的问题

这个响应时间大概在10s以上了,非常成问题。

并且启动Linux后也有可能键盘布局有问题。

这时需要手动执行rc.local脚本,修改键盘的布局。(这里参数archlinux Macbook wiki)

目前还不明键盘响应慢的原因。多方查找无果。

修复快捷键

  • Option + Command + P + R 重置NVRAM
  • Ctrl + Option + Shift + Power 重启mce

gmagick图片处理优化打包

在做网站的图片处理项目时,碰到系统自带的graphicmagick库与效率比较低,
导致服务器负载偶尔达到 300-500的值,这种状态服务基本不用了。
而这个图片处理系统设计的是实时图片处理,前端加varnish缓存的模式。

一旦达到这个范围的负载Load,整个服务基本处于不可用状态,
大概有70-80%的图片处理请求得不到处理,在页面上显示白页了。

这是由于在默认情况下,全部使用CPU的x86指令处理图片,不但耗CPU,而且处理速度还慢。

经过一些理论研究与摸索测试,找到了一个能够大幅优化图片处理效率的方式。

这个优化方式,着重在三点,
1)使用新版本的包,
2)使用CPU的针对图片处理的高级汇编指令
3) 使用openmp并行处理

这里主要使用了libjpeg-turbo这个处理库,这个库尽可能使用了硬件支持的专门处理图片视频的CPU扩展指令,所以效率非常高。

据其官方测试这个库处理图片的效率是系统默认libjpeg的3-5倍。

根据自己的实现项目测试,这个优化效果也非常明显。

关于这个库的详细说明详见其官方网站。

对raid基本磁盘阵列的理解

RAID是英文Redundant Array of Independent Disks(独立磁盘冗余阵列),简称磁盘阵列。
常用的raid级别有,raid0,raid1,raid5,raid6,raid10。
下面就这几个常见raid级别说明一下我的理解。
1、raid0 条带存储
这种级别没有数据冗余,所有阵列中的磁盘参数数据存储。
分数据存储实现并行存储,理论上,N块磁盘的raid0存储速度为一块磁盘存储速度的N倍。
并行存储是把写入的数据按段分隔,每个磁盘存储不同的数据段。
这种级别的问题无修复机制,一块磁盘块,整个阵列无法读写。
好处在于,能完全利用磁盘空间,提高IO速度,能提供所有raidx级别中最快的IO速度。
速度S: N*
容量C: N*
2、raid1 镜像存储
这个级别包含完整的数据冗余,不同的磁盘两两互备。
由于可在原磁盘繁忙时到副本磁盘上读取,可以提高IO速度。
由于数据存储完整两份,成本是所有级别中最高的,可靠性也是最高的。
速度S: N/2+

Category:

android手机sdcard分区优化

该优化针对针对我需要在一个分区上安装个完整的可chroot的linux服务环境。

在手机系统升级与数据清理时都不抹掉分区的安装的单独系统数据。

分区格式:
/dev/block/mmcblk1p1 4G vfat
/dev/block/mmcblk1p2 20M ext4
/dev/block/mmcblk1p3 ~2G ext4

分区原理,对于cm 10 来说,在recover恢复功能中,有重新格对sdcard分区功能,

重新分区可支持/sd-ext和swap两种扩展机身内存的功能,
使用分区2用于存储应用数据和缓存,可在开机时做个简单的hack,也有相关的app实现这一功能。
但分区在wipe data时会被清除掉。
这城不能使用分区2存储这个服务系统环境。

Category:

在HTC andriod手机上安装nginx+php-fpm+mysql服务

android是一个相对开放的系统,与linux系统非常类似,但也不完全一样。
虽然能做很多事情,但是还需要做许多研究学习。
本次就在手机上安装anmp(android,nginx,php-fpm,mysql)服务对android系统做一次算是应用分析吧。
分析的重点内容为:
linux与android
刷机与root权限,在linux上与android上的不同,了解这个是做hack系统的比较重要的一步
android应用的读写权限
内存卡与sd卡
存储卡的分区方式与分区格式,vfat vs. ext4
外接USB卡的应用
用adb在linux下连接并操作android手机
如何在android命令行执行后台原生程序
android-ndk交叉编译C/C++服务程序环境
交叉编译anmp服务程序
使用已经编译好的arm发行版
chroot环境下启动服务的特征
chroot环境linux系统的安装与应用
android命令行模式的电话短信服务的可行性研究
android服务分析
android硬件驱动研究

初步使用Android NDK的感受

Android NDK是Android平台提供的C/C++开发接口。

NDK整套工具链完全由google提供,升级支持。

由于Android的底层是基于linux的,内核及之上,java虚拟机以下,

而NDK则正针对是的这一部分,所以,与正常的linux gcc编译工具链差不多,

不同的地方在于,

1. 这是一个交叉编译工具链,链接目标为ARM系

2. 这个工具链自定义了一些android平台相关的宏

3. 有自己的Makefile规则及扩展

对于一般的命令行项目,移植还比较容易,当然这不包括音频、视频处理。

像linux常用的音频软件,alsa,pulseaudio目前都没有成熟的移植,使用了这些的软件包移植时,需要把这部分扩展到android的音频、视频框架。

直接使用NDK做GUI的功能非常弱,非常不成熟,稍微好点的有个qt移植lighthouse,使用起来比较麻烦,并且做出的界面风格与android普通应用风格区别很大。

使用NDK的好处是可以移植大量的linux C/C++开源开发库。

最近移植了几个开发库,遇到的问题还不太多,一般在asm这块,或者一些不常见的函数实现问题。

嵌入式数据库hamsterdb的android编译工程文件

hamsterdb是一个采用C开发,非常快,轻量级的嵌入式数据库引擎。

hamsterdb 包括的B +树变长密钥和记录。它支持内存中的数据库和字节独立的文件,数据库,游标,多个数据库在一个文件中, “记录”数据库,重复键。 hamsterdb是非常快速和高度可配置的。汇编和Unix平台上运行, Linux ,微软Windows ,和Windows CE 。

嵌入式数据库 hamsterdb 2.x 正式版发布,该版本包含一个完全重新实现的事务处理,可支持无限制的并发事务处理数,集成 Java 和 .NET 的 客户端访问 API。

由于在android项目中要使用,编写了一上使用android NDK编译hamsterdb的工程文件,还比较通用,发布出来,供开发者参考:
项目中使用的是最新版本的hamsterdb-2.0.1

在编译过程中,遇到一个basename函数找不到的问题,需要修改两个文件,添加一行
#include

需要修改的文件是src/log.cc和src/journal.cc

工程文件有两个,Application.mk和Android.mk,放在android项目的jni目录,使用android-build命令编译。

Category:

android 开发文档资料

在线文档:
官方网站的《android 开发指南》
官方网站的

书籍:
Hello Android 3rd
Android-2高级编程
Beginning.Android.4.Application.Development

Category:

android Linux 开发环境

这是一个开发环境搭建及环境维护文档。

我使用的是arch linux,一般都保持比较新的状态。

桌面环境KDE 4。

相关包:
sudo pacman -S swt lib32-sdl lib32-libstdc++5 lib32-openal libmtp
AUR包:
android-sdk
android-ndk
android-sdk-platform-tools
android-apktool
android-udev

安装完android-udev后,需要把你开发用的用户添加到adbusers组中,这个组是安装该包时添加的。

gpasswd -a USERNAME adbusers

android platforms版本及下载:
http://dl-ssl.google.com/android/repository/android-15_r03.zip

Category:

HTC G18功能使用

自带屏幕抓图功能,电源键+HOME键

插入耳机,屏幕左上角显示beats音效图标。

官方推送升级4.0后每次重起出现"优化应用",如何去掉。

Category:

頁面

訂閱 RSS - Hardware


Main menu 2

by Dr. Radut