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

Левое меню

Последние

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

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

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

ыва

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

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

Packman
NVidia
LibreOffice
wine

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

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

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

2. firefox addons