образовательная корпорация
Создать
Править
Отменить
Вверх

Левое меню

Последние

Изменить меня

1
Вкладки

Асгард сеть

Самарт сеть


Это старая версия документа!


Plugin installed incorrectly. Rename plugin directory '_mp3play' to 'mp3play'.

Open Suse 13.2 x64 заселение на mac

Процес начинается с разбивки жесткого, благо для этого есть BootCamp в стандартной поставке. Ей и воспользовались
Главное во время установки не перезаписать основной MBR

Я вообще загрузчик UEFI выбрал.

подробнее про это написать с OS X Yo

Железные проблемы

Это всегда весело получать проблемы из ниоткуда.
Точнее от туда, где раньше все было хорошо.

1. Нету драйвера беспроводной сети

Таблица с поддерживаемыми ядром устройствами

https://wireless.wiki.kernel.org/en/users/Drivers/b43?highlight=%28b43%29#Supported_devices

Проверяем свое железо

lspci -nn | grep 0280
$ lspci -vnn | grep Network
03:00.0 Network controller [0280]: Broadcom Corporation BCM4360 802.11ac Wireless Network Adapter [14e4:43a0] (rev 03)

Видим что 14e4:43a0 ядром в чистом виде не поддерживается, но wi-fi можно запустить через wl

Значит это наш путь собрать и загрузить его.

modprobe wl

Дело было так:

  1. скачиваем исходники модуля http://www.broadcom.com/support/?gid=1
  2. собирал по этой мане https://wiki.centos.org/HowTos/Laptops/Wireless/Broadcom

в процессе смотрел эти ссылки - сделал два патча.

https://513156.bugs.gentoo.org/attachment.cgi?id=378836
https://www.centos.org/forums/viewtopic.php?f=50&t=52081
http://ubuntuforums.org/showthread.php?t=2216779&page=2
https://bugs.gentoo.org/show_bug.cgi?id=513156
http://stackoverflow.com/questions/19013337/how-to-fix-802-11-linux-sta-broadcom-driver-not-building-on-centos
http://mike-kirk.blogspot.co.il/2014/07/broadcom-wireless-not-working-on-fedora.html
http://msiyer.com/2014/11/28/opensuse-13-2-and-broadcom-bcm43228-wireless-driver-woes-in-the-linux-world/
http://linuxforums.org.uk/index.php?topic=11930.30

Первый

wl-kmod-fix-ioctl-handling.patch
diff -Npru a/src/wl/sys/wl_cfg80211_hybrid.c b/src/wl/sys/wl_cfg80211_hybrid.c
--- a/src/wl/sys/wl_cfg80211_hybrid.c	2014-06-26 06:42:08.000000000 -0400
+++ b/src/wl/sys/wl_cfg80211_hybrid.c	2014-07-21 13:37:45.204564696 -0400
@@ -1450,7 +1450,10 @@ wl_cfg80211_get_station(struct wiphy *wi
 		memset(&scb_val, 0, sizeof(scb_val));
 		err = wl_dev_ioctl(dev, WLC_GET_RSSI, &scb_val, sizeof(scb_val_t));
 		if (err) {
-			WL_DBG(("Could not get rssi (%d)\n", err));
+			if (err != -EINVAL) {
+				/* Don't fill syslog with EINVAL errors */
+				WL_ERR(("Could not get rssi (%d)\n", err));
+			}
 			return err;
 		}
 		rssi = dtoh32(scb_val.val);
diff -Npru a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c
--- a/src/wl/sys/wl_linux.c	2014-06-26 06:42:08.000000000 -0400
+++ b/src/wl/sys/wl_linux.c	2014-07-21 13:41:57.551456600 -0400
@@ -1651,11 +1651,7 @@ wl_ioctl(struct net_device *dev, struct 
 	}
 
 	WL_LOCK(wl);
-	if (!capable(CAP_NET_ADMIN)) {
-		bcmerror = BCME_EPERM;
-	} else {
-		bcmerror = wlc_ioctl(wl->wlc, ioc.cmd, buf, ioc.len, wlif->wlcif);
-	}
+	bcmerror = wlc_ioctl(wl->wlc, ioc.cmd, buf, ioc.len, wlif->wlcif);
 	WL_UNLOCK(wl);
 
 done1:

Второй

diff -Npru a/src/wl/sys/wl_cfg80211_hybrid.c b/src/wl/sys/wl_cfg80211_hybrid.c
--- a/src/wl/sys/wl_cfg80211_hybrid.c 2014-06-26 06:42:08.000000000 -0400
+++ b/src/wl/sys/wl_cfg80211_hybrid.c 2015-06-26 06:42:08.000000000 -0400
@@ -1841,7 +1841,26 @@ wl_notify_connect_status(struct wl_cfg80211_priv *wl, struct net_device *ndev,
			wl_get_assoc_ies(wl);
			memcpy(&wl->bssid, &e->addr, ETHER_ADDR_LEN);
			wl_update_bss_info(wl);
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 15, 0)
+			{
+				struct wl_bss_info *bi;
+				u16 bss_info_channel;
+				struct ieee80211_channel *channel;
+				u32 freq;
+
+				bi = (struct wl_bss_info *)(wl->extra_buf + 4);
+				bss_info_channel = bi->ctl_ch ? bi->ctl_ch : CHSPEC_CHANNEL(bi->chanspec);
+
+				freq = ieee80211_channel_to_frequency(bss_info_channel,
+					(bss_info_channel <= CH_MAX_2G_CHANNEL) ?
+					IEEE80211_BAND_2GHZ : IEEE80211_BAND_5GHZ);
+
+				channel = ieee80211_get_channel(wl_to_wiphy(wl), freq);
+				cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, channel, GFP_KERNEL);
+			}
+#else
			cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, GFP_KERNEL);
+#endif
			set_bit(WL_STATUS_CONNECTED, &wl->status);
			wl->profile->active = true;
		}
 
		----------------------------
		this work esa
 
 
 
		wl_link_up(wl);
			wl_get_assoc_ies(wl);
			memcpy(&wl->bssid, &e->addr, ETHER_ADDR_LEN);
			wl_update_bss_info(wl);
 
 
 
 
 
 
 
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 15, 0)
 
				struct wl_bss_info *bi;
				u16 bss_info_channel;
				struct ieee80211_channel *channel;
				u32 freq;
 
				bi = (struct wl_bss_info *)(wl->extra_buf + 4);
				bss_info_channel = bi->ctl_ch ? bi->ctl_ch : CHSPEC_CHANNEL(bi->chanspec);
 
				freq = ieee80211_channel_to_frequency(bss_info_channel,
					(bss_info_channel <= CH_MAX_2G_CHANNEL) ?
					IEEE80211_BAND_2GHZ : IEEE80211_BAND_5GHZ);
 
				channel = ieee80211_get_channel(wl_to_wiphy(wl), freq);
				cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, channel, GFP_KERNEL);
 
#else
			cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, GFP_KERNEL);
#endif
			set_bit(WL_STATUS_CONNECTED, &wl->status);
			wl->profile->active = true;
 
 

Исходники и скомпилированный модуль
http://wiki.magnes.su/lib/exe/fetch.php?media=wiki:%D1%81%D0%BA%D0%BB%D0%B0%D0%B4:%D0%BE%D0%B1%D0%B6%D0%B8%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5:linux:opensuse_13.2:wifi-mac-222.tar.gz

вырезка из файла в папке с моими исходниками

Вот так это запускается при старте системы

su
cd home/will/222
modprobe lib80211
modprobe cfg80211
insmod wl.ko

создаем файлик с таким содержимым и помещаем его в загрузку системы
cd /etc/rc.d
touch mac_wifi

и заносим его в нужную стадию загрузки симлинком, скажем в rc5.d

по хорошему откомпилированные файлы надо размазать по системным папкам с либами, но меня устраивает, что они живут в ~
но с домашним путем могут быть проблемы с правами на этапе загрузки.

или лучше сделать так

cp wl.ko /lib/modules/`uname -r`/kernel/net/wireless/
depmod
#rmmod bcma
#echo "blacklist bcma" >> /etc/modprobe.d/blacklist.conf
modprobe wl

и сеть у нас грузится вместе с ядром.
Правда при обновлении версии - надо будет ручками перекинуть wl

2. Разрешение экрана HiDPI

Подключим репу NVIDIA и загрузим софт.
Вместо конфигурашки через xorg.conf.d создадим классический xorg.conf

для этого войдем в единоличный режим - ctrl f1
root -
init 3
и соберем конфиг
Xorg -configure
Конфиг появится в /root/xonf-conf.new

Перезагрузимся и зайдем в нормальный режим - запустим конфиг от nvidia, настроим мониторы как нам надо и сохраним все в файл.

Сравним на похожесть с созданым /root/xonf-conf.new, подредактируем, если надо и пересохраним под именем /etc/X11/xorg.conf

Вот исходный

Section "ServerLayout"
	Identifier     "X.org Configured"
	Screen      0  "Screen0" 0 0
	InputDevice    "Mouse0" "CorePointer"
	InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"
	ModulePath   "/usr/lib64/xorg/modules"
	FontPath     "/usr/share/fonts/misc:unscaled"
	FontPath     "/usr/share/fonts/Type1/"
	FontPath     "/usr/share/fonts/100dpi:unscaled"
	FontPath     "/usr/share/fonts/75dpi:unscaled"
	FontPath     "/usr/share/fonts/ghostscript/"
	FontPath     "/usr/share/fonts/cyrillic:unscaled"
	FontPath     "/usr/share/fonts/misc/sgi:unscaled"
	FontPath     "/usr/share/fonts/truetype/"
	FontPath     "built-ins"
EndSection

Section "Module"
	Load  "glx"
	Load  "vnc"
EndSection

Section "InputDevice"
	Identifier  "Keyboard0"
	Driver      "kbd"
EndSection

Section "InputDevice"
	Identifier  "Mouse0"
	Driver      "mouse"
	Option	    "Protocol" "auto"
	Option	    "Device" "/dev/input/mice"
	Option	    "ZAxisMapping" "4 5 6 7"
EndSection

Section "Monitor"
	Identifier   "Monitor0"
	VendorName   "Monitor Vendor"
	ModelName    "Monitor Model"
EndSection

Section "Device"
	Identifier  "Card0"
	Driver      "nvidia"
	BusID       "PCI:1:0:0"
EndSection

Section "Screen"
	Identifier "Screen0"
	Device     "Card0"
	Monitor    "Monitor0"
	SubSection "Display"
		Viewport   0 0
		Depth     1
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     4
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     8
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     15
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     16
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     24
	EndSubSection
EndSection

Вот от Nvidia

# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings:  version 340.93  (buildmeister@swio-display-x86-rhel47-03)  Wed Aug 19 17:10:48 PDT 2015

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection

Section "Files"
EndSection

Section "InputDevice"
    # generated from data in "/etc/sysconfig/mouse"
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "IMPS/2"
    Option         "Device" "/dev/input/mice"
    Option         "Emulate3Buttons" "yes"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Acer P203W"
    HorizSync       31.0 - 83.0
    VertRefresh     56.0 - 75.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GT 750M"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "DFP-2"
    Option         "metamodes" "HDMI-0: nvidia-auto-select +1440+0, DP-2: nvidia-auto-select +0+150 {viewportin=1440x900}"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

3. 100% одного CPU при подключении/отключении внешнего монитора

ыва

Обустройство

Подключение репозиториев

Packman
NVidia
LibreOffice
wine

steam - https://en.opensuse.org/Steam#Installation

Софт для работы

1. KeepassX - в основном есть

2. firefox addons