解决Windows不能远程登录ubuntu18.04.2(xRDP)的问题

Windows远程登录工具(mstsc)可以说是比较好用的,为了方便开发,尝试在ubuntu上搭建xRDP,结果一直卡在登录界面。

表象是输入账号密码后,屏幕空白一段时间,然后提示:

1
2
connection problem,giving up
some problem

image

各种分析之后发现应该是少了一个叫 xorgxrdp 的包,那就装上吧,结果这个包依赖另一个叫xserver-xorg-core的包,但是依赖不满足,所以没自动推荐安装。

那就手动安装xserver-xorg-core吧,结果发现这货要让我卸载很多东西,包括xorg的很多包和桌面(xubuntu-desktop)。。。我怕会破坏环境影响使用,就停在这里没继续了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ sudo apt-get install xserver-xorg-core

Suggested packages:
xfonts-100dpi | xfonts-75dpi
The following packages will be REMOVED:
xorg xserver-xorg-core-hwe-18.04 xserver-xorg-hwe-18.04 xserver-xorg-input-all-hwe-18.04 xserver-xorg-input-libinput-hwe-18.04
xserver-xorg-input-synaptics-hwe-18.04 xserver-xorg-input-wacom-hwe-18.04 xserver-xorg-video-all-hwe-18.04
xserver-xorg-video-amdgpu-hwe-18.04 xserver-xorg-video-ati-hwe-18.04 xserver-xorg-video-fbdev-hwe-18.04
xserver-xorg-video-intel-hwe-18.04 xserver-xorg-video-nouveau-hwe-18.04 xserver-xorg-video-qxl-hwe-18.04
xserver-xorg-video-radeon-hwe-18.04 xserver-xorg-video-vesa-hwe-18.04 xserver-xorg-video-vmware-hwe-18.04 xubuntu-core
xubuntu-desktop
The following NEW packages will be installed:
xserver-xorg-core
0 upgraded, 1 newly installed, 19 to remove and 0 not upgraded.
Need to get 1,351 kB of archives.
After this operation, 5,753 kB disk space will be freed.

后来发现 Griffon 的 这篇文章:http://c-nergy.be/blog/?p=13390 (因为已经fix了,图片也是借用的他文章里的,感谢!)。文章提到卸载后再把xorg的一些包安装回去就可以了,既然有先行者了,我就跟着做吧。

各种安装、卸载,最后我多加了一步,把桌面装回来了:

1
2
3
4
$ sudo apt-get install xserver-xorg-core
$ sudo apt-get -y install xserver-xorg-input-all
$ sudo apt-get install xorgxrdp
$ sudo apt-get install xubuntu-desktop

装完重启,环境看起来一切OK,暂时未见明显异常。

Windows登录,成功!又可以愉快的搬砖了。。。

最后,Thanks Griffon!

所以说遇到困难还是要勇于尝试啊 =。=

感觉少了年轻时候的锐气,想当年折腾系统的时候,可是不惜数据被格式化无数遍的啊 lol.

阅读全文

fatal error: 'asm/types.h' file not found

用cmake+ndk的时候遇到一个错误:

1
fatal error: 'asm/types.h' file not found

用的是ndk自带的 build/cmake/android.toolchain.cmake

看现象是include路径没包含进来。

解决方案,修改 build/cmake/android.toolchain.cmake,增加:

1
2
3
4
5
6
7
8
9
if (${ANDROID_ABI} STREQUAL "x86_64")
include_directories(${ANDROID_SYSROOT}/usr/include/x86_64-linux-android)
elseif (${ANDROID_ABI} STREQUAL "x86")
include_directories(${ANDROID_SYSROOT}/usr/include/i686-linux-android)
elseif (${ANDROID_ABI} STREQUAL "arm64-v8a")
include_directories(${ANDROID_SYSROOT}/usr/include/aarch64-linux-android)
elseif (${ANDROID_ABI} STREQUAL "armeabi-v7a")
include_directories(${ANDROID_SYSROOT}/usr/include/arm-linux-androideabi)
endif()

搞定。

阅读全文

blog-hugo的bug导致生成静态页面失败

这个bug 导致hugo生成静态页面失败。

之前在另一台机器上解决了这个问题,也 提交 到github了。

但是由于家里跑cron job的机器没有自动更新blog-hugo的代码,结果这两天的博客都是404。。。

自动生成博客之前还是要先更新 blog-hugo 项目的代码啊!

阅读全文

cannot locate symbol "_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base"

用NDK standalone toolchain编译生成的动态库,在设备上跑的时候报这个错。

搜了一下这个符号,似乎是STL相关的(?),而且是 libgnustl 里才有。

最后解决办法:make standalone toolchain的时候,指定 --stl=libcxx ,不使用默认的 libgnustl。

这样生成的toolchain不包含这个符号,生成的动态库也不会去找这个符号。

(以前一直用的默认的libgnustl并没有报错,应该是项目上没用到STL相关的东西?)

阅读全文

测试局域网的可用(外出)端口

由于某些特殊原因,公司对外出的端口进行了限制,基本上只允许最常用的几个(21,22,80,443等)。

这样的结果是,一些使用了自定义端口的网站 (https://example.com:8080) 就没办法访问了。

这样我在家里的NAS服务器上装的nextcloud需要维护管理的时候就不太方便了(因为电信默认禁止了80和443端口的访问,自建的NAS服务器只能用自定义端口)。

因为是自用,不可能让IT开绿灯,折中一下,只有找一个公司这边也开放的端口,然后就用这个端口来做NAS服务端口。

说干就干,找到一个监听了(几乎)所有端口的服务器: http://portquiz.net (表示感谢!)

写个脚本跑一跑:

#!/bin/bash

output=available_ports.txt
echo "" > $output

for i in $(seq 1 65535); do
    echo "testing $i..."
    nc -zv portquiz.net $i 2>&1 | grep "succeeded" >> $output
done

echo
echo "--= DONE =--"
echo

一顿扫下来,发现开放的端口果然很少。。勉强找两个用起来。

阅读全文

用github的issue做记录并生成静态博客

github-issue-fetcher + blog-hugo + cron job 的方式已经放弃,改用 Github Actions来自动发布了。具体见 #11

本文仅供参考

构思:

  1. 在github上写issue
  2. 把issue爬下来(github-issue-fetcher
  3. 评论系统用https://utteranc.es/,可以跟issue完美结合
  4. 用hugo等生成静态博客,并发布到github page(blog-hugo

1. 在github上写issue

正如本篇一样,写到github的issue页面里,并保持OPEN状态。

可以加一些 Labels(blog-hugo会当作tag写入博客)

2. 把issue爬下来

写了些Python脚本,通过Github GraphQL API去爬issue list。

由于API的限制,每次抓issues 最大只能100条(first:100),如果issue数目超过100, 需要用到 cursor 多次获取。

然后偶然发现author字段有时候会返回None, 有点没搞明白。。。

3. 评论系统

一句话:https://utteranc.es/ is amazing!!!

4. 用hugo等生成静态博客,并发布到github page

按照hugo和主题的需求,写Markdown文件头,以及内容。(以及评论系统的脚本)

我本地会有一个cron job自动去重新抓取issue和生成博客(如果内容没有变化,则不用push到github)。

阅读全文