存档

2014年8月 的存档

香蕉派远程桌面连接

2014年8月14日 没有评论

在前面的几篇文章里,衣服自己洗分享了香蕉派的一些设置,可是没有告诉各位同学,显示器是我从单位借用抱回家的,单位的网络有限制,对于软件安装什么的,都无法进行,只好带回家。大家能想象出在下班高峰的地铁上,一个抱着显示器的人是有多么艰难。

由于是借用公家的显示器,终归是要还的,所以支持远程桌面什么的,就是十分必需的了。在网上搜索了一把,基本上是2种方案,一个是使用vnc,考虑到windows上还需要安装软件,所以我给过滤掉了。第二个是直接使用windows自带的远程桌面,很多人推荐使用xrdp,估计是x remote desktop的意思吧。

sudo apt-get install xrdp

然后从家里路由器里拿到香蕉派的IP地址,接着就是远程桌面了。网上的帖子大致如此。

可是衣服自己洗远程桌面时,显示登录成功,可是始终是灰色的屏幕,没有任何东西,只有一个X鼠标。这不科学,你们知道吗!网上搜索了很久,基本上没有人遇到,只有2个人有同样的问题,可惜没有后文,我想应该是我的关键词有问题吧。

搞了很久,都没有答案,以至于衣服自己洗现在才把香蕉派的系列文章写下来。终于某一天在ubuntu的论坛里看到一个帖子。

妈蛋,原因竟然是ubuntu环境和xrdp的桌面环境冲突导致远程桌面灰屏。接下来就是各种找解决思路,功夫不负有心人,终于找到了,使用xfce4。

剩下的就简单了,xrdp 还是需要安装的,sudo apt-get install xfce4

然后呢就是 echo xfce4-session >~/.xsession,重启下xrdp的服务即可了。

这个问题虽然出现在香蕉派上,但是理论上也存在ubuntu无法远程桌面的问题。

香蕉派环境配置(二)之合并分区

2014年8月14日 1 条评论

经过一段时间的运行,香蕉派里磁盘空间很快就满了。使用 df -lh 命令,可以看到 /dev/root 占用率已经达到 100%。这个现象让我很是迷惑,当初买SD卡时我买的是8G大小,难道这么快就用光光了?对于 Linux 我不懂,顿时慌了手脚,于是就在考虑是买一个更大容量的SD卡,还是考虑采用移动硬盘的方式,还是把香蕉派扔掉的犹豫中渡过了几个不眠夜。

目前我的香蕉派里就安装了Nginx、PHP、Mysql,加上系统本身的空间,内容应该没有特别大。

在一次偶然的过程中,我打开了Disks程序,突然发现SD卡,里面还有大约4G的空白空间。我的第一反应是还好自己放在购物车里的订单还没有支付。既然有剩余空间就比较好处理了,用一些工具应该可以实现。可惜我不会,只好求助网络。

网上搜索有帖子说,对于Linux系统一旦安装好,那么分区就是固定的了,一个处理不好连系统无法启动。我这边看到有2个分区,第一个分区不到100M,应该是引导分区,第二个分区就是实际用的。剩余4.3G是剩余空间,还没有分区。

以root登录系统,使用 Disks 工具,选中那个4.3G的空白空间,然后格式化并添加。记得是快速格式化,磁盘格式选择和主分区一致的Ext4格式。

现在就该使用解决问题的命令fdisk了,命令格式:fdisk <存储设备名>  //如: fdisk /dev/sda
进入fdisk 后,使用单键命令
m 显示Help

p  列出所有分区
d  删除分区
n  新建分区
w 存盘退出
q 不存盘退出

对主设备进行fdisk,对于香蕉派,命令是:sudo fdisk  /dev/mmcblk0。

按 p 键 列出所有分区,可见有三个分区。第一个分区是 FAT32分区,是引导用的,第二个分区是Linux 主分区,第三个分区是刚添加的那个4.3G的空白分区。记下Linux 主分区的Start Sector号 ,我的是102400。

按 d 键 Partition Number (分区号) 选 2, 删除linux主分区(第2个区)。再按d键, Partition Number (分区号) 选 3,  删除4.3G的空白分区(第3个区)

按 p 键 列出所有分区,可见只剩第一个分区了

按 n 键,重新创建linux主分区
Partition Type(分类类型) 选 P (Primary)
Partition Number (分区号) 选 2

First Sector(起始Sector) 一定要输入刚才记下来的Start Sector号(我的是102400),默认直接回车也可以。Last Sector (终止Sector)用默认值,直接回车。

按 p 键 列出所有分区,可见有两个分区,linux主分区在第2个,起始位置是原位置。 按 w 键 存盘退出fdisk。

接下来,立即重启,不要做任何其它事情

sudo reboot

重启并登录后,立即用以下命令sudo resize2fs /dev/mmcblk0p2 ,该命令将把第二个分区扩展到新的空间中。现在查看一下硬盘使用情况,OK了。无论是用 Disks 程序还是 df -lh 命令,都可以看到主分区有7G多了。

上述操作的原理是:首先删除了linux主分区和空白,重建的主分区起始Sector位置与原主分区一致,再resize2fs,则原主分区数据完全没变,但改变了主分区的大小。

至此,香蕉派的分区合并就完成了,衣服自己洗很是高兴,希望对手头上有树莓派/香蕉派的同学有帮助。

香蕉派环境配置(一)之用户修改

2014年8月14日 没有评论

上一篇,衣服自己洗为大家分享了香蕉派的基本知识。这是第二篇,关于环境配置的一些细节。

按照官方的流程,先格式化SD卡,然后写入系统镜像,完成后插入SD卡,开机引导即可进入系统,很是简单。我使用的是 Ubuntu 的镜像。

官方的镜像里的帐号是 Lemaker/bananapi,root/bananapi。我们先通过 Lemaker 用户进入系统,屎黄色的桌面背景很是醒目哟。

对于用户而言,第一个要做的就是添加自己喜欢的用户名,修改 Lemaker 貌似会出问题,可能是镜像的原因吧。开始菜单,设置,用户和群组,添加用户,设置自己喜欢的用户名和密码,设置类型为 Administrator,我有注意到官方的用户类型的 Customer,不太清楚这个区别有多大。

然后注销,以刚创建的用户名登录,进入到系统后,删除 默认的Lemaker用户。接下来就是修改主机名了,修改 /etc/hostname 文件,例如Lubuntu,保存退出,然后重启。

这个时候,我们在使用需要 sudo 权限的命令时,界面上会每次都显示 sudo:unable to resolve host Lubuntu,出现这个的原因在于系统对于主机名的解析不识别。解决方法也很简单,修改 /etc/hosts 文件,添加对本地的映射,内容如下:

127.0.0.1    localhost  Lubuntu

保存退出即可。

 

分类: 日常 标签: , , ,

超越树莓派的香蕉派

2014年8月13日 没有评论

整个事情的时间跨度有点长,在好几年前网上看到树莓派这个词,那时我小不懂事,于是就搜索了一把,从此留了下伏笔。

搜索结果看到树莓派很是流行,我觉得性能不是很好,就放下了。不过偶尔看到和树莓派有关的内容,还是会点击看一看的。最近的一个活是一个关于智能家居的开发,觉得蛮有意思的。

在某一天看到某人的微博,说是买了个树莓派。顿时心理就痒的不行,第二天恰好看到有香蕉派,性能比树莓派好很多,于是就立马入手了香蕉派。如果百度搜索香蕉派的话,基本上都是饮食类的内容,如果搜索banana pi的话,就会出现对应的结果,从这个角度来看,香蕉派还有段距离要走。

香蕉派在CPU和内存上都比树莓派上了一个级别。只比信用卡稍微大一点点,可以用来做文件服务器,web服务器等,而且借助 wifi,可以放在家里各种地方,拿出来显摆也是很不错的哟。

香蕉派 香蕉派背面

香蕉派,有2个USB接口,1个网卡接口,1个HDMI 和音频接口,出乎我意外的是,居然还有红外接口,用来做智能家居的控制是再好不过的了。和树莓派一样,使用SD扩展卡,经过我的试用这些硬件基本满足折腾的需求。由于使用HDMI接口,我外接显示器还买了个转接头,键盘是用的工作上服务器的小键盘。没有无线网卡,在网上买了一个免驱动的,这样一来,USB接口就不够用了,只好又买了个USB Hub。那个时候,电脑又坏了,去中关村跑了好几趟,顺便买了个 hub,质量水的不得了,还花了20大洋,好在可以用。

买香蕉派,本来是想折腾,一是弄个web服务器,另外一个是想看看智能家居方面有没有什么机会。香蕉派官方说是兼容树莓派,也可以安装安卓哟,不过我还是选择的ubuntu镜像,其实应该算做是LUbuntu,LUbuntu 是另外一个界面的ubuntu,对于GUI做了精简,适合硬件能力不算好的设备。

如果大家喜欢的话,不妨去看看。

c#应用程序获取管理员权限

2014年8月12日 没有评论

从vista开始,微软对操作系统的安全性下足了功夫,对于敏感操作例如C盘文件、注册表打开等,都会弹出对话框让用户确认选择。

在这样的机制下,一些恶意程序就得到了抑制,不会再像XP那样,后台偷偷运行用户都不知道。今天衣服自己洗,要和大家分享的是,如何获取管理员权限。

对于敏感操作,如果没有管理员权限,那么操作会失败。为了避免这样的情况,有的时候主动要求管理员权限,对于正常的应用程序来说,是一个比较好的事情。

c#获取管理员权限,大致有2中方式:

1、代码方式。在应用程序的入口函数里添加下面的代码,思路是这样的,启动的时候,获取当前用户的身份,如果已经是管理员了,那么就直接运行对应的窗体。如果不是,那么通过新开进程的方式。代码很简单,就不加注释说明了,加粗的那行代码就是最关键的。

System.Security.Principal.WindowsIdentity identity = System.Security.Principal.WindowsIdentity.GetCurrent();
System.Security.Principal.WindowsPrincipal principal = new System.Security.Principal.WindowsPrincipal(identity);

if (principal.IsInRole(System.Security.Principal.WindowsBuiltInRole.Administrator))
{
Application.Run(new frmMain());
}
else
{
ProcessStartInfo info = new ProcessStartInfo();
info.UseShellExecute = true;
info.WorkingDirectory = Environment.CurrentDirectory;
info.FileName = Application.ExecutablePath;
info.Verb = “runas”;

Process.Start(info);
}

如果当前用户是普通用户,调试程序获取管理员权限,并不需要VS开发环境是管理员权限运行的,不需要退出VS再以管理员权限打开,是不是很方便呀?在这样的情况下,是无法断点调试的。衣服自己洗就碰到了这样的情况,如果想要断点调试,那么就要选择附加到进程的方式才可以。

对于C++其它语言来说,获取管理员权限,思路和这个差不多,所以这个方法算是大众思路了。

2、配置文件方式

.Net framework给予我们另外一种方式,通过添加manifest文件来实现获取管理员权限的需求。在项目中,添加一个manifest文件,menifest文件也叫做“应用程序清单文件”。

默认创建的清单文件里,requestedExecutionLevel节点即描述了程序运行需要的权限。修改为下面的内容即可:

<requestedExecutionLevel level=”requireAdministrator” uiAccess=”false” />

其实在里面的注释里也有,从注释里拷贝一下也是可以的。

分类: 日常 标签: , ,

winform 调整 ListViewItem高度

2014年8月8日 没有评论

这几天在写一个小工具,里面用到了ListView控件,在添加项的时候,需要设置每个项的高度,因为默认的高度感觉比较小。

我本以为这样的需要来进行重绘,那样感觉很麻烦。后来网上搜索了一把,有一个好方法,衣服自己洗赶紧地给收录进来。

每个LiveView 是可以设置 SmallImageList 和 LargeImageList的,该属性对应一个 ImageList,我们从这个上面着手就可以了。通过设置ImageList的尺寸可以实现修改 ListViewItem 的高度。

imageList.ImageSize = new Size(32, 32);

当然,最好里面对应的图片也是这个尺寸,以避免图片的缩放。

解决好这个问题后,我发现了一个新的问题,就是ListViewItem里的图标显示失真,可是图标都是我的从系统里提取出来的,按说是没有问题的。在解决上面高度的问题的时候,偶然找到了原因,对于 ImageList ,需要设置下图片的颜色深度,就像下面的样子:

imageList.ColorDepth = ColorDepth.Depth32Bit;

 

现在就妥妥的了。

分类: 一句话 标签: , ,